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

对象数组:Student stu[5]?

这个对象数组是调用了拷贝构造函数吗?


正在回答

4 回答

Student stu[5]相当于有五个对象,因为他们的地址是不同的。要是拷贝构造函数的话地址是相同的。Student stu[5]就相当于是开辟了5个连续空间的地址,分别将五个对象元素指向一块地址,地址不同就一定不是调用的拷贝构造函数。

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

你的重载构造函数是怎么写的呢?

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

Student(const Student &s){ //拷贝构造函数

Name=s.Name;

ID=s.ID;

Sex=s.Sex;

Age=s.Age;

Address=new char[strlen(s.Address)+1];

strcpy(Address,s.Address);

count++;

}

Student stu[5]=

{Student("张三","410521199410173321","河南省"),Student("李斯","412309200212232211",12,"河北省"),

Student("王五","430873199610183345","男","山东省"),Student("赵四","410521199450173341","男",21,"河南省"),

Student("赵刚","400521199450173341","男",21,"河南省")};

Student stu6(stu[4]);

为什么count++在拷贝构造函数中可以实现正确的对象个数,如果是放在重载的构造函数中就是11个对象?


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

不是,调用了5次构造函数

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

举报

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

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

对象数组:Student stu[5]?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信