不同于 C 语言,在 C++ 中,我们通常会使用“类”结构,来定义和管理资源。类,可以让我们将程序逻辑和数据按照不同的角色进行封装,进而提高代码的重用性、灵活性和扩展性。然而,不当的类结构定义,会使应用程序在运行过程中发生未知的资源使用问题。为了尽可能避免出现这些问题,”The Rule of Three“这一套编码准则,在经过不断的实践之后,便被人们总结出来了。
于航,PayPal 高级软件工程师,FCC (FreeCodeCamp China) 上海技术社区负责人, QCon、GMTC 大会讲师,WebAssembly 技术布道者。2017 年注册成为 W3C 官方 CG(Community Group)成员,2018 年出版了《深入浅出 WebAssembly》,是国内第一本 Wasm 技术书,为推动国内 Wasm 技术发展和落地实践做出了一定贡献。
作者回复: 这里确实是很容易让人看错的一个地方,我之前也犯过类似的错误。需要注意的是变量在初始化时是不会调用“copy-assignment operator”的,相反这里调用的是“copy-constructor”。因为这里我们是在声明“P3”的时候就直接进行初始化了“Person P3 = P2;”。为了更加明确,如果后面还有一行代码是“P1 = P3;”,那这里由于“P1”已经经过初始化所以就会调用拷贝赋值函数/运算符。