73 C++对象模型探索。C++关于 copy 构造函数是不是一定要写?

不一定。

原因:C++编译器内部支持成员变量的 按位拷贝,因此当只有int,double的时候,C++编译器会很好的支持。

但是,只要有指针,就需要手动写,按位拷贝只是把指针拷贝过去,而没有拷贝指针的指向,存在浅拷贝问题发生。

 一旦自己写了显示的拷贝构造函数,C++编译器内部支持的 按位拷贝就不再起作用,那么一定要手动完成变量的拷贝。

这里还是建议都写上,养成良好的习惯。

另外:operator = 也存在一样的问题,不同的是:operator =在内部实现的时候 如果有指针,存在一步 delete的操作。

你可能感兴趣的:(c++,开发语言)