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

本文介绍了C++中的大三律,即析构函数、拷贝构造函数和赋值运算符重载的关系。当类包含动态分配的成员时,必须定义这三大函数以避免内存泄露等问题。通过示例代码解释了默认拷贝构造和赋值操作符可能导致的问题,并提出了解决方案,包括自定义这些函数或声明为private来阻止不必要的使用。
1952

被折叠的 条评论
为什么被折叠?



