構造函數
從 华夏文化百科
簡介
如果類中某個成員函數的名稱與類名稱相同,我們稱這個函數是構造函數。構造函數不能有返回值,甚至不能有return語句。簡單地說,構造函數是這樣一種函數,當一個對象被建立時,程序就會自動調用這個類的構造函數為這個對象進行初始化。C++Builder允許定義多個使用不同參數列表的構造函數。這裏有兩種特殊的構造函數,默認構造函數和複製構造函數。默認構造函數不帶任何類型的參數,而複製構造函數帶有一個參數,該參數的類型為一個對相同類的實例對象的引用。
與其他方法的區別
1.構造函數的命名必須和類名完全相同;而一般方法則不能和類名相同.2.構造函數的功能主要用於在類的對象創建時定義初始化的狀態.它沒有返回值,也不能用void來修飾.這就保證了它不僅什麼也不用自動返回,而且根本不能有任何選擇.而其他方法都有返回值.即使是void返回值,儘管方法體本身不會自動返回什麼,但仍然可以讓它返回一些東西,而這些東西可能是不安全的.3.構造函數不能被直接調用,必須通過new運算符在創建對象時才會自動調用,一般方法在程序執行到它的時候被調用.4.當定義一個類定義的時候,通常情況下都會顯示該類的構造函數,並在函數中指定初始化的工作也可省略不去Java編譯器會提供一個默認的構造函數.此默認構造函數是不帶參數的.而一般方法不存在這一特點
例子
- include iostream using namespace std; class time { public: time() //constructor.構造函數 { hour=0; minute=0; sec=0; } void set_time(); void show_time(); private: int hour; int minute; int sec; }; int main() { time t1; t1.set_time(); t1.show_time(); time t2; // t2.set_time(); t2.show_time(); return 0; } void time::set_time() { cin hour; cin minute; cin sec; } void time::show_time() { couthour":"minute":"secendl; } 程序運行情況: 10 11 11 回車 10:11:11 0:0:0任何時候,只要創建類或結構,就會調用它的構造函數。類或結構可能有多個接受不同參數的構造函數。構造函數使得程式設計師可設置默認值、限制實例化以及編寫靈活且便於閱讀的代碼。
相關詞條
| 析構函數 | C++ | 面向對象 |
| 重載 | 繼承 | 異常處理 |
參考資料
[1] http://www.baidu.com[2] 《C++程序設計教程》錢能編著 清華大學出版社出版