关于C ++,三规则是什么?

使用C ++时,三个规则是经验法则。这是一种好的做法,它规定:如果您的班级需要以下任何一项

  • 复制构造函数

  • 赋值运算符

  • 或破坏者

明确定义,则可能需要全部三个。

为什么是这样?这是因为,如果您的课程要求上述任何一项,则它正在管理动态分配的资源,并且可能需要其他资源才能成功实现这一目标。例如,如果您需要赋值运算符,则将创建当前正在通过引用复制的对象的副本,从而分配资源。您将需要使用复制构造函数进行复制,并需要使用析构函数来释放这些资源。