系統地介紹一下類與對象的定義,並能夠給出程序舉例。
- Markdown和擴展Markdown簡潔的語法
定義
對象是現實中的對象在程序中的模擬,類是對同一類對象進行概括得到的抽象。
對象是類的實例。
定義類的對象,纔可以通過對象使用類中定義的功能。
-
類定義的語法形式:
-
類內初始值
可以爲數據成員設置類內初始值,用於初始化數據成員。
-
類成員的訪問控制
公有類型成員
私有類型成員
保護類型成員
公有類型成員:
在關鍵字public後面聲明,它們是類與外部的接口,任何外部函數都可以訪問共有類型數據和函數。
私有類型成員:
1、在關鍵字private後面聲明,只允許本類中的函數訪問,而類外部的任何函數都不能訪問
2、如果緊跟在類名稱的後面聲明私有成員,則關鍵字private可以省略
保護類型成員:
與private類似,其差別表現在繼承與派生時對派生類的影響不同
- 對象定義的語法:
類名 對象名;
eg: Clock myClock;
類中成員之間直接使用成員名互相訪問
從類外訪問成員使用"對象名.成員名"方式訪問public成員
-
類的成員函數:
1、在類中聲明函數原型;
2、可以在類外給出函數體實現,並在函數名前使用類名加以限定
3、也可以直接在類中給出函數體,形成內聯成員函數
4、允許聲明重載函數和帶默認參數值的函數 -
內聯成員函數:
1、爲了提高運行時的效率,對於較簡單的函數可以聲明爲內聯形式
2、內聯函數體中不要有複雜結構 (如循環語句和switch語句)
3、在類中聲明內聯成員函數的方式:a) 將函數體放在類的聲明中;b)使用inline關鍵字
舉例—鐘錶類
#include <iostream>
using namespace std;
class Clock{
public:
void setTime(int newH = 0, int newM = 0, int newS = 0);
void showTime();
private:
int hour, minute, second;
};
void Clock::setTime(int newH, int newM, int newS){
hour = newH;
minute = newM;
second = newS;
}
void Clock::showTime(){
cout << hour << ":" << minute << ":" << second;
}
int main(){
Clock myClock;
myClock.setTime(8, 30, 30);
myClock.showTime();
return 0;
}
輸出的結果是:
8:30:30