摘要:
这句话包含两部分的意思:第一部分是要考虑到所有成员变量,特别是后加入的,相应的拷贝构造函数和赋值运算符要及时更新;第二部分是在存在继承时,不要遗忘基类部分的复制。先看第一部分的意思,举个例子:1 class SampleClass2 {3 private:4 int a;5 public:6 SampleClass(const SampleClass& s):a(s.a)7 {}8 };这里只举了一个拷贝构造函数的例子,赋值运算符与之类似,如果这个时候又加了一个成员变量,比如double b,拷贝构造函数和赋值运算符就要相应地更新(构造函数... 阅读全文
摘要:
直观的operator=是这样定义的: 1 class SampleClass 2 { 3 private: 4 int a; 5 double b; 6 float* p; 7 public: 8 SampleClass& operator= (const SampleClass& s) 9 {10 a = s.a;11 b = s.b;12 p = s.p;13 ... 阅读全文