構造函數

從 华夏文化百科
跳到: 導覽、 搜尋

簡介

如果類中某個成員函數的名稱與類名稱相同,我們稱這個函數是構造函數。構造函數不能有返回值,甚至不能有return語句。簡單地說,構造函數是這樣一種函數,當一個對象被建立時,程序就會自動調用這個類的構造函數為這個對象進行初始化。C++Builder允許定義多個使用不同參數列表的構造函數。這裏有兩種特殊的構造函數,默認構造函數和複製構造函數。默認構造函數不帶任何類型的參數,而複製構造函數帶有一個參數,該參數的類型為一個對相同類的實例對象的引用。 


與其他方法的區別

1.構造函數的命名必須和類名完全相同;而一般方法則不能和類名相同.2.構造函數的功能主要用於在類的對象創建時定義初始化的狀態.它沒有返回值,也不能用void來修飾.這就保證了它不僅什麼也不用自動返回,而且根本不能有任何選擇.而其他方法都有返回值.即使是void返回值,儘管方法體本身不會自動返回什麼,但仍然可以讓它返回一些東西,而這些東西可能是不安全的.3.構造函數不能被直接調用,必須通過new運算符在創建對象時才會自動調用,一般方法在程序執行到它的時候被調用.4.當定義一個類定義的時候,通常情況下都會顯示該類的構造函數,並在函數中指定初始化的工作也可省略不去Java編譯器會提供一個默認的構造函數.此默認構造函數是不帶參數的.而一般方法不存在這一特點




例子

  1. 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++程序設計教程》錢能編著 清華大學出版社出版