https://github.com/zytc2009/BigTeam_learning
分类: C/C++
2009-07-30 17:56:12
C++中几乎所有的类都有拷贝构造函数,析构函数和赋值操作符重载函数,即使你不显示定义,编译器也会自动生成的,它们提供的都是一些最基本的功能。
拷贝构造函数:一种特殊的构造函数,他由编译器调用来完成一些基于同一类的其他对象的构件及初始化;
析构函数:摧毁一个对象并保证它被彻底清除;
赋值操作符:以已有对象为蓝本给另一对象进行新的赋值。
所谓的大三律(rule of three, the law of the big three or the big three)正是在规则他们之间的关系:
1.如果类定义了析构函数,那么也应该定义拷贝构造和赋值运算符;
2.如果类含有需要动态分配的成员,那么该类必须定义拷贝构造和赋值运算符;
一句话,析构函数、拷贝构造、赋值运算符重载应该总是同时出现。下面一个简单的例子程序对这个定律做了论证: