函數只能有一個回傳值 (return value) ,卻可以有多個參數版本,這是因為很多時候都得處理不同的情況,不同情況需要的參數大多也不同。
由於 Demo 有兩個變數成員 a 與 b ,因此我們打算設置三種建構子的參數版本,分別是沒有參數、一個參數及兩個參數
Demo(); Demo(int n); Demo(int n1, int n2);
沒有參數的建構子直接將 a 與 b 都設定為整數 1 ,一個參數的建構子將 a 與 b 都設定為參數值,至於兩個參數的建構子, a 設定為第一個參數, b 設定為第二個參數
Demo::Demo() { a = 1; b = 1; } Demo::Demo(int n) { a = n; b = n; } Demo::Demo(int n1, int n2) { a = n1; b = n2; }
我們寫成完整範例如下
#include <iostream> using namespace std; class Demo { public: Demo(); Demo(int n); Demo(int n1, int n2); void setA(int n); void setB(int n); int getA(); int getB(); int do_something(); private: int a; int b; }; Demo::Demo() { a = 1; b = 1; } Demo::Demo(int n) { a = n; b = n; } Demo::Demo(int n1, int n2) { a = n1; b = n2; } int Demo::do_something() { return getA() + getB(); } void Demo::setA(int n) { a = n; } void Demo::setB(int n) { b = n; } int Demo::getA() { return a; } int Demo::getB() { return b; } int main(void) { Demo t1; Demo t2(11); Demo t3(11, 22); cout << endl; cout << t1.do_something() << endl; cout << t2.do_something() << endl; cout << t3.do_something() << endl; cout << endl; return 0; } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:classdemo3.cpp 功能:示範 C++ 程式 作者:張凱慶 時間:西元 2012 年 10 月 */
利用建構子建立物件 (object) 變數 (variable) ,宣告時加小括弧即可,需要留意沒有參數的建構子不需要加小括弧
Demo t1; Demo t2(11); Demo t3(11, 22);
編譯執行結果如下
我們現在是把程式碼統統放在同一個檔案中,程式碼擠在一起不是很好閱讀,如果發展大型程式更是落落長,接下來我們將看到介面與實作分開,學習更有效的組織程式檔案。
中英文術語對照 | |
---|---|
函數 | function |
參數 | parameter |
建構子 | constructor |
多載函數 | overloaded function |
回傳值 | return value |
物件 | object |
變數 | variable |
您可以繼續參考
基礎篇
相關目錄
回 C++ 入門指南
回 C++ 教材目錄
回首頁
參考資料
http://www.cplusplus.com/doc/tutorial/classes/
http://www.cplusplus.com/doc/tutorial/classes2/
1 則留言:
寫得很淺顯易懂..
可能是用數字的關係..
我自己買的書的案例是用文字..
搞得我好複雜..
不知作者能不能教學一下用文字的方式來設定建構子?
非常感謝~
張貼留言