C类返回旧值?
发布时间:2020-12-16 06:43:28 所属栏目:百科 来源:网络整理
导读:我似乎无法弄清楚为什么这个代码, class test{ public: int number; test(int pass){ number = pass; }};int main(){ test x(3); test y(2); test z[2]={x,y}; y.number = 1; cout "z[0].number: " z[0].number endl; cout "z[1].number: " z[1].number endl
我似乎无法弄清楚为什么这个代码,
class test{ public: int number; test(int pass){ number = pass; } }; int main(){ test x(3); test y(2); test z[2]={x,y}; y.number = 1; cout << "z[0].number: " << z[0].number << endl; cout << "z[1].number: " << z[1].number << endl; cout << "x.number: " << x.number << endl; cout << "y.number: " << y.number << endl; return 0; } 得出这个输出, z[0].number: 3 z[1].number: 2 x.number: 3 y.number: 1 而不是这个, z[0].number: 3 z[1].number: 1 x.number: 3 y.number: 1 如何使第二个输出成为可能?我已经搜索了这三天,还没有运气:( 解决方法
当你说:
test z[2] = {x,y}; z拥有两个复制构建的测试实例.由于您没有放置一个复制构造函数,它使用默认值,它复制所有数据成员.因此,z包含x的副本和y的副本.这就是为什么改变y不会改变z中的内容.它不像所有的东西都是Java的参考. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容