類與對象 | C++基礎 C++語言程式設計網課 C++中支持我們使用類來定義自己的數據類型。 類的基本思想:數據抽象(data abstraction) 與 封裝(encapsulation)。 數據抽象:依賴於 介面(interface) 和 實現(implementation) 分離的編程(及 ...
類與對象 | C++基礎
C++中支持我們使用類來定義自己的數據類型。
類的基本思想:數據抽象(data abstraction) 與 封裝(encapsulation)。
-
數據抽象:依賴於 介面(interface) 和 實現(implementation) 分離的編程(及設計)技術。
-
類的介面:用戶所能執行的操作。
-
類的實現:類的數據成員、負責介面實現的函數體、定義類所需的各種私有函數。
-
-
封裝:使類的介面和實現分離。隱藏了類的實現細節(類的用戶只能使用介面而無法訪問實現部分)。
抽象
對同一類對象的共同屬性和行為進行概括,形成類
- 先註意問題本質,其次是實現過程或細節
- 數據抽象:描述某對象的屬性或狀態(對象相互區別的物理量)
- 代碼抽象:描述某類對象的共有的行為特征或具有的功能
- 抽象的實現:類
//定義Clock類
class Clock//邊界
{
public://特定的訪問許可權
void setTime(int newH, int newM, int newS);
void showTime();//外部介面
private://特定的訪問許可權
int hour, minute, second;
};//邊界
封裝
將抽象出的數據、代碼封裝在一起,形成類。
- 目的:增強安全性和簡化編程,使用者不必瞭解具體的實現細節,而只需要通過外部介面,以特定的訪問許可權來使用類的成員
- 實現封裝:類聲明中的{}
類和對象的關係
對象是現實中的對象在程式中的模擬
類是同一類對象的抽象,對象是類的某一特定實體
定義類的對象,才可以通過對象使用類中定義的功能
類定義的語法形式
class Clock//類名稱
{
public:
//公有成員(外部介面)
private:
//私有成員
protected:
//保護型成員
}
類成員的訪問控制
公有類型成員
在關鍵字public後面聲明,它們是類與外部的介面,任何外部函數都可以訪問公有類型數據和函數
私有類型成員
在關鍵字private後面聲明,只允許本類中的函數訪問,而類外部的任何函數都不能訪問
如果緊跟在類名稱的後面聲明私有成員,則關鍵字private可以省略
保護類型成員
與private類似,其差別表現在繼承與派生時對派生類的影響不同
對象定義的語法形式
class Clock {...};
//類名 對象名
Clock myClock
使用類的成員
類中成員互相訪問
直接使用成員名訪問
類外訪問
使用"對象名.成員名"方式訪問public屬性的成員
實例
//類的定義
#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 << endl;
}
//對象的使用
int main() {
Clock myClock;
myClock.setTime(8, 30, 30);
myClock.showTime();
return 0;
}
類內初始值
可以為數據成員提供一個類內初始值
在創建對象時,類內初始值用於初始化數據成員
沒有初始值的成員將被預設初始化
類的成員函數
在類中說明函數原型
可以在類外給出函數體實現,併在函數名前使用類名加以限定
也可以直接在類中給出函數體,形成內斂成員函數
允許聲明重載函數和帶預設參數值的函數
內聯成員函數
為了提高運行時效率,對於較簡單的函數可以聲明為內聯形式
內斂函數體中不要有複雜結構(如迴圈語句和switch語句)
在類中聲明內聯成員函數的方式:
- 將函數體放在類的聲明中
- 使用inline關鍵字
本文來自博客園,作者:LaStHia,轉載請註明原文鏈接:https://www.cnblogs.com/microwang/p/16160580.html