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

已采纳回答 / onemoo
这样写和 stu2 = stu1 一样,都是要用stu1来初始化stu2,也就是调用拷贝构造函数。

最新回答 / XiaoADream
对t3没有影响,但是因为对第二个构造函数两个参数都赋予了默认值,Teacher()和Teacher(string name="Lucy",int age = 20)这两个构造函数计算机就无法分辨了。因为两个函数都可以直接实例化对象t1了,计算机不知道调用哪个构造函数了

已采纳回答 / onemoo
优势就是你可以手动管理内存,可以控制堆上对象的生存时间。函数中,栈上的对象在函数结束后就会被销毁,如果你想要生成一个可以一直存在的对象,就需要将其构造在堆中。

最赞回答 / 紫泉
这事因为getline函数决定的,getlime函数其实有3个参数的,istream& getline ( istream &is , string &str , char delim ); 第三个是默认缺省为'\n',也就是说,换行。getlime将'\n'前面的字符写入str字符串,也就是name中,当然会去掉'\n',你用的应该是VC6.0才会出现这样的问题吧,vs已经不会有这问题了。VC6.0避免按两次回车的办法:(网上找到的)解决方法:进入X:\Program Files...

已采纳回答 / onemoo
不带括号叫做default initialize,带括号叫做value initialize。这两种写法对于有默认构造函数的对象来说没有区别,都是调用其默认构造函数。但对于built-in类型,是有区别的:不带括号时,对象的值是不确定的。带括号时,初值一般为0。

最赞回答 / 伊兮尘昔
void Teacher::setGender(string _gender);  string Teacher::getGender();string Teacher::getName();这三句话后面的分号是几个意思?

最新回答 / 等候稻香
#include "stdafx.h"#include <iostream>#include <stdlib.h>#include "Coordinate.h"#include "Line.h"using namespace std;/********************************************//*对象成员要求:     定义两个类; 坐标类:Coordinate 数据成...

最新回答 / 肖申克赫本
谢谢,不用了已解决

最赞回答 / AAnonymous
d就是个数组你这么写试试(d+i)->x = 12;(d+i)->print_x();

已采纳回答 / AAnonymous
都可以,当然你要调用含参构造函数时就必须带括号了。C++和Java不同,Java都要括号的

已采纳回答 / onemoo
老师并没有说错。你说的那些确实都可以作为默认构造函数,所以它们只能有一个。 因为如果存在多个,那么在需要调用默认构造函数的时候,编译器就不知道要调用哪一个了。
课程须知
本课程是C++初级课程 需要熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、类的定义与对象实例化 2、string类型及属性封装 3、类外定义 4、构造函数与初始化列表 5、析构函数

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消