网站建设公司怎,我想学做网站,上海外贸财经大学,wordpress微信投票1.拷贝构造函数与构造函数类似#xff0c;当没有自定义拷贝构造函数的时候#xff0c;编译器会定义一个拷贝构造函数。
当类对象没有初始化的时候#xff0c;通过赋值运算符的形式#xff0c;也是调用拷贝构造函数。
Test aa(100);
Test bb aa;//调用拷贝构造函数Test …1.拷贝构造函数与构造函数类似当没有自定义拷贝构造函数的时候编译器会定义一个拷贝构造函数。
当类对象没有初始化的时候通过赋值运算符的形式也是调用拷贝构造函数。
Test aa(100);
Test bb aa;//调用拷贝构造函数Test aa(100);
Test bb(200);
bb aa;//此时因为对象bb已经初始化此时调用的是赋值运算符
2.当类成员没有指针的时候使用编译器自带的默认构造函数就可以浅拷贝即可当类成员有指针的时候需要自定义拷贝构造函数实行深拷贝。
3.拷贝构造函数的参数为引用不能是值传递也不能是指针传递参考该文。
如果是值传递的话相当于在不停的调用拷贝构造函数造成栈溢出。参考该文。
假设是值传递Test(Test cc);Test aa(100);
Test bb aa;//相当于 bb.Test(aa),此时aa会拷贝给临时变量cc相当于 cc.Test(aa);//此时aa又会拷贝给临时变量cccc.Test(aa);//这个过程不断的重复造成栈溢出