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

最赞回答 / onemoo
new type 和 new type() 都是合法的写法,不过略有区别:对于有默认构造函数的类型,new type 和 new type() 都是调用默认构造函数来实例化,没有什么区别。对于built-in类型,new int得到的int内存中是随机值(未初始化),new int() 实例化的int会初始化为0(内置类型基本上会被初始化为0)。

已采纳回答 / onemoo
报的错误是什么?  错误提示都在里面,下次出错时好好看看,对找错误会有帮助的。如果你的成员函数是定义在类定义中的,则大括号后不用加分号。所以代码中拷贝构造函数的大括号后面不用加分号。 如果你是把大括号去掉了,那表明你是在类定义中声明了一个拷贝构造函数,并没有定义它,编译链接时会报未定义错误。你说你把函数定义复制到main函数中?!  函数不能嵌套定义,你这样做肯定是错的。还有这个代码中根本就没有用到拷贝构造函数。

已采纳回答 / IT饱
打代码的时候请认真点,还有VC6.0估计也不能过<...图片...>

最赞回答 / 朵小妖儿
若输入中文,则需要加name[1]cout<<"your name first letter is:"<<name[0]<<name[1]<<endl;但是此时英文名就不适用了

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

最赞回答 / IT饱
请把函数名称读完 拷贝构造函数--构造函数的一种你觉得构造函数能重载吗?

讲师回答 / 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。
课程须知
本课程是C++初级课程 需要熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、类的定义与对象实例化 2、string类型及属性封装 3、类外定义 4、构造函数与初始化列表 5、析构函数

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消