阿瑟 發表
講到了class (類別)也代表我們進入了一個新的章節, 一個物件導向的C++章節.
*注意: C++所有語法大小寫有差. 如果您在執行時發現中文無法顯示請自行將程式修改成英文.#include <iostream.h> #include <stdlib.h> class numbers { int number1; double number2; numbers() { number1 = 5; number2 = 5.5; } ~numbers() { cout << "一個numbers類別的物件被終結了" << endl; } }; void main() { numbers a; cout << a.number1 << endl; cout << a.number2 << endl; system("PAUSE"); } |
什麼是私有和公開呢?
私有 代表的是該成員的存取權限限制於該類別內的其他成員, 外界是無法直接存取的. 如果用類別創造物件, 該物件內私有的成員也只能被物件內的成員存取.
公開 代表的是該成員的存取權涵蓋了外界物件, 外界物件可以直接存取.
class較struct注重安全性, 多數程式設計師都將函式設定為公開, 而變數設定為私有, 這麼做是為了別人隨便竄改變數內容.
將剛剛的範例改一下:
#include <iostream.h> #include <stdlib.h> class numbers { private: int number1; double number2; public: numbers() { number1 = 5; number2 = 5.5; } ~numbers() { cout << "一個numbers類別的物件被終結了" << endl; } void output() { cout << number1 << endl; cout << number2 << endl; } }; void main() { numbers a; a.output(); system("PAUSE"); } |
編譯並且執行, 您應該會看到與上次相同的輸出
為了保護變數, 小弟將number1與number2兩個成員放在私有的部分. 由於外界無法直接輸出兩個變數, 因此小弟另外在class中寫了一個output()函式來輸出number1與number2的數值. 由於numbers類別中所有的函式都有被外界存取的可能, 因此都放在公開的部分.
至於主函式 void main()的部分, 小弟將原本從物件中輸出number1與number2的部分改成了呼叫函式 a.output(), a是一個用numbers類別創造的物件實體 (instance).
小弟今天寫到這裡也要先停筆了, 下幾回再做詳細的class介紹