对象模型(拷贝构造函数2)
#include <iostream> using namespace std; //关于类不展现按位拷贝语义的几种情况 /** *1.类的成员对象含有默认拷贝函数 *2.继承的基类包含拷贝函数(无论是合成的还是自己定义的) *3.有虚函数,因为虚指针按位拷贝有问题 *4.派生自虚基类 */ class Word { public: Word(const char*) { } ~Word(){delete [] str;} private: int cnt; const char* str; }; //对象模型上说这种情况不需要合成一个默认拷贝函数,我查了下primer上说 //如果我们没有定义复制构造函数,编译器就会为我们合成一个。与合成的默 //认构造函数(第 12.4.3 节)不同,即使我们定义了其他构造函数,也会合成复制构造函数,这个yu int main() { Word A("123"); Word B =A; getchar(); return 0; }