C 類和物件(一) 封裝

2021-10-10 02:27:54 字數 2694 閱讀 3093

2. struct 和class的區別

3. 成員屬性設為私有

4. 練習案例:

c++物件導向的三大特性:封裝,繼承,多型c++認為萬事皆可為物件,物件上有其屬性和行為

例如:物件: 車

屬性: 輪胎,方向盤,喇叭,車燈

行為:載人,駕駛,照明

具有相同性質的物件,抽象位類

車屬於車類

• 將屬性和行為作為乙個整體,表現生活中的事物,即物件

• 將屬性和行為加以許可權的控制(private, protected, public)

在設計類的時候,可以將屬性和行為寫在一起,表現事物

語法

class 類名

;

例項1: 設計乙個圓類,求圓的周長

//建立乙個圓,並計算周長

#include

using namespace std;

#define pi 3.14

//公式: 周長 = 2 * pi * r

class circle };

intmain()

類在設計時候,可以把屬性和行為放在不同的許可權下,加以控制

訪問許可權:名稱

許可權許可權

許可權public

類內可以訪問

類外可以訪問

protected

類內可以訪問

類外不可以訪問

子類可以訪問父類中的保護成員

private

類內可以訪問

類外不可以訪問

子類可以訪問父類中的私有成員

protected 和 private

兒子可以開父親的汽車

兒子不可以知道父親的銀行卡密碼

舉例

#include

using namespace std;

class person };

intmain()

在c++中唯一的區別在於預設的訪問許可權不同• struct的預設許可權為public

• class的預設許可權為 private

#include

using namespace std;

class c

;struct s

;int

main()

優點1: 將所有成員屬性設定為私有,可以自己控制讀寫許可權

優點2: 對於寫許可權(比如修改乙個資料,防止超出有效範圍

),我們可以檢測資料的有效性

對外提供乙個公共的成員函式,來給成員屬性進行賦值操作

class person 

//讀許可權

設計立方體:

設計立方體類(cube)

求出立方體的面積和體積

分別用全域性函式和成員函式判斷兩個立方體體積是否相等

用引用的方式直接使用原始的資料,就不需要拷貝乙份資料出來了

class cube 

intgetv()

//利用成員函式判斷倆個立方體體積是否相等

bool issamebyclass

(cube c)

void

seth

(int h)

void

setw

(int w)

void

setl

(int l)

private:

//屬性

int m_h;

int m_w;

int m_l;};

//全域性函式判斷體積是否相等

C 類和物件(一) 封裝

c 物件導向的三大特性 封裝 繼承 多型。c 中萬物皆物件,物件包含屬性 成員變數 成員屬性 和行為 成員函式 成員方法 封裝的意義 1 將屬性和行為作為乙個整體,表徵現實的事物 2 對屬性和行為進行許可權控制。訪問許可權包括3種 public 公共許可權 成員在類中和類外均可訪問。protecte...

C 物件導向(一)封裝 類和物件

封裝 繼承 多型 封裝 組織 的過程,將 組織為乙個方法,將方法組織成類,將類組成元件,不同的元件組織為乙個系統。封裝可以方便使用者使用,並且能夠保證 的穩定性,安全性。類 一組相似物件的統稱。物件 乙個例項,是類的實現。類與物件的關係類物件 抽象具體 無狀態有狀態 是物件的模板 是類的例項 類與類...

一 封裝(C物件導向開發)

內容參考於 抽象接 術和元件開發規範及其思想 在c語言中,可以使用乙個c檔案 c 檔案 和 件完 h 檔案 成 類 的定義,將所有需要封裝的東西都存於c 檔案中,h 檔案中只展現那些對外可見 無需封裝 重點 的內容。1.示例1 乙個棧物件的例子。stack.h ifndef stack h defi...