複製建構子 複製建構子英語Copy constructor是C编程语言中的一種特別的建構子習慣上用來建立一個全新的物件這個全新的物件相當於已存在物件的副本這個建構子只有一個參數引數就是用來複製物件的參照常用const修饰构造函数也可以有更多的参数但除了最左第一个参数是该类的引用类型外其它参数必须有默认值 类的复制构造函数原型通常如下Classnameconst Classname  src 一般來說假如程式設計師沒有自行編寫複製建構子那麼編譯器會自動地替每一個類別建立一個複製建構子相反地程式設計師有自行編寫複製建構子那麼編譯器就不會建立它 當物件包括指標或是不可分享的參照時程式設計師編寫顯性的複製建構子是有其必要性的例如處理檔案的部分除了複製建構子之外應該還要再編寫解構子與設定運算子的部分也就是三法則 下述代码编译时报错因为复制构造函数的参数如果是传值将导致对自身无限递归 class X XX copyfromme Xconst X copyfromme 调用复制构造函数的情形包括 用一个对象来初始化正在构造的对象变量 函数返回一个对象 函数参数作为对象传值 抛出一个异常对象 捕捉一个异常对象 对象放在大括号中即  上述情形未必会调用复制构造函数因为C标准允许编译器实现做一些优化例如 Class X bX Microsoft Visual C 编译器仅执行了一次缺省构造函数没有执行复制构造函数