類與對象的介紹

系統地介紹一下類與對象的定義,並能夠給出程序舉例。

  • 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章