为了账号安全,请及时绑定邮箱和手机立即绑定

为什么设置类的对象时对象的名字要和类一样

#include <iostream>

#include <string>

using namespace std;


/**

  * 定义类:Student

  * 数据成员:m_strName

  * 数据成员的封装函数:setName()、getName()

  */

class Student

{

public:

    // 定义数据成员封装函数setName()

    void setName(string _name)

    {

        m_strName = _name;

    }

    

    // 定义数据成员封装函数getName()

    string getName()

    {

        return m_strName;

    }

    

//定义Student类私有数据成员m_strName

private:

string m_strName;


};


int main()

{

    // 使用new关键字,实例化对象

Student *str = new Student();

    // 设置对象的数据成员

str->setName("慕课网");

    // 使用cout打印对象str的数据成员

    cout << str->getName() << endl;

    // 将对象str的内存释放,并将其置空

delete str;

str = NULL;

return 0;

}

这里为什么Student *str = new Student()括号前一定是Student,改成别的就无法通过。

正在回答

3 回答

因为你要申请一个堆的内存空间,来实例化一个STUDENT的类,若果你用别的名字,空间大小就不是这个类的大小里,你怎么用这段内存来实例化Student

0 回复 有任何疑惑可以回复我~

New的时候,会默认执行类的无参构造方法,而构造方法的名字必须和类名一样,所以Student()自然不能被改啊,因为必须构造方法,这个方法默认隐藏,你也可以写出来,都一样

0 回复 有任何疑惑可以回复我~

因为这里是使用new来实例化Student这个对象呀,相当于利用new函数把Student这个对象来放到main函数里面

0 回复 有任何疑惑可以回复我~
#1

云海酱 提问者

那为什么对象的名字要和类一样呢
2018-07-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(上)
  • 参与学习       103381    人
  • 解答问题       732    个

封装--面向对象的基石,本教程力求帮助小伙伴们即学即会

进入课程

为什么设置类的对象时对象的名字要和类一样

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号