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

已采纳回答 / IT饱
请记住在 类 后 打:class Student{public:    Student()    {        m_strName = "";    }    Student(string _name)    {        m_strName = _name;    }    Student(const Student &stu)    {            }    ~Student()    {            }    void setName(string _name);...

讲师回答 / james_yuan
对于具有默认构造函数的类来说,两者实例化之后的数据本质是一样的,只不过一个从堆中分配内存,一个从栈中分配内存。比如:在类中有一个成员x,如果在构造函数中有:x =10, 那么无论是Student *stu = new Student(),还是Student stu,其结果都是对象中的x被赋值了10,最后顺便说一下,你的代码写错了,第一,不能写成Student stu = new Student(),而应写成Student *stu = new Student(),第二,不能写成Student stu = ...

已采纳回答 / 康振宁
没有,不过一般在实际开发中,为了别人不能随便操作你的数据成员,所以一般把数据成员扔到private下,这也是封装的好处

已采纳回答 / onemoo
不加括号代表默认初始化(default initialize),类型后加上空括号代表值初始化(value initialize)。对于有构造函数的类,这两种形式都是调用其默认构造函数。没有区别。但对于built-in类型,由于没有默认构造函数,所以默认初始化会导致初值未定。而值初始化则一般会初始化为0。

已采纳回答 / onemoo
你的t1调用了默认构造函数。t2和t3都调用了copy constructor。从运行结果的前三句看并没有问题。可你定义的copy constructor并没有复制相应的成员变量啊,仅仅是输出了一句表明自己被调用的字符串。所以t2和t3成员变量的值都是默认值。string的默认值为空字符串,int这种内置类型的默认初值是未定的。输出的结果中打印t2和t3的位置上:在空格前其实就是空字符串,后面一个0和4237840就是随机的int。正确的copy constructor应该在构造初始化列表中给自己的成员变...

已采纳回答 / onemoo
你的initScore函数声明有返回值,那在函数体中最后必须return一个相应的值。 只有main函数是个例外,main函数的最后不写返回语句的话,默认是return 0;如果你的函数不需要返回什么值,就应该将返回值声明为void,返回值为void的函数最后可以不写 return; 语句。还有,main函数的原型是返回int的,返回void是不规范的。最后,以上都是C++标准规定的,一些编译器可能并没有完全遵守规范(老版本的VS尤甚)

已采纳回答 / onemoo
想刷题? 请去 https://leetcode.com/

已采纳回答 / onemoo
不能在构造函数体中调用其他的构造函数,这等于是临时构造了一个Teacher后又丢弃了它。不过在新标准(C++11)中,可以在构造函数的构造初始化列表中调用本类的其他构造函数。如:<...code...>另外,对其普通的构造函数,最好也把成员变量的初始化值写在构造初始化列表中。

已采纳回答 / 观星_
不可以这样子理解,100是一个默认值,如果你不对m_iMax赋值150,那么系统就会默认为m_iMax赋值100,m_iMax不是一开始就等于100的,这一点要清楚
课程须知
本课程是C++初级课程 需要熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、类的定义与对象实例化 2、string类型及属性封装 3、类外定义 4、构造函数与初始化列表 5、析构函数

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消