三法则(Rule of Three)在C++里,它是一个以设计的基本原则而制定的定律。它的要求是,假如类有明显定义下列其中一个
成员函数,那么程序员必须写入其他两个成员函数到类内,也就是说下列三个成员函数缺一不可:
析构函数、
复制构造函数、
赋值运算符。上述三个函数是特别的成员函数,假如程序员没有自行定义或宣告这三个函数,编译器会自动地创建他们并且编译到应用程序内。然而,如果程序员仅定义其中一个,其余两个函数仍然会由编译器自动产生,这种混杂的情况非常容易产生程序员难以预期的错误。三法则的存在,正是提醒程序员避免那样的陷阱。