一个复制建构子；相反地，程式设计师有自行编写复制建构子，那么编译器就不会建立它。当物件包括指标或是不可分享的参照时，程式设计师编写显性的复制建构子是有其必要性的，例如处理档案的部分，除了复制建构子之外，应该还要再编写解构子与设定运算子的部分，也就是三法则。下述代码编译时报错。因为复制构造函数的参数如果是传值，将导致对自身无限递归。class X；X(X copy_from_me);X(const X copy_from_me);调用复制构造函数的情形包括：上述情形未必会调用复制构造函数。