C 核心程式設計 04類和物件 封裝

2021-10-16 10:37:00 字數 3411 閱讀 4984

c++物件導向程式設計的三大特徵為:封裝、繼承、多型

c++認為萬事萬物皆為物件,物件上有其屬性和行為

封裝是c++物件導向三大特性之一

封裝的意義:

(1)將屬性和行為作為乙個整體,表現生活中的事物

(2)將屬性和行為加以許可權控制

封裝意義一:

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

語法:class 類名

#include

using

namespace std;

const

double pi =

3.14

;//設計乙個圓類,求圓的周長

class

circle};

intmain()

類中的屬性和行為——統稱為成員

(1)屬性——成員屬性、成員變數

(2)行為——成員函式、成員方法

#include

#include

using

namespace std;

//設計乙個中學生類,屬性有姓名和學好,可以給姓名和學好賦值,可以顯示學生的姓名和學好

class

student

void

setname

(string new_name)};

intmain()

封裝意義二:

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

訪問許可權分為3種:

(1)public共有許可權:成員——類內可以訪問,類外可以訪問

(2)protected保護許可權:類內可以訪問,類外不可訪問子類也可以訪問父類的保護成員

(3)private私有許可權:成員——類內可以訪問,類外不可以訪問子類不可以訪問父類的私有成員

#include

#include

using

namespace std;

//訪問許可權

//公有許可權public:成員——類內可以訪問,類外可以訪問

//保護許可權protect:成員——類內可以訪問,類外不可訪問 子類也可以訪問父類的保護成員

//私有許可權private:成員——類內可以訪問,類外不可以訪問 子類不可以訪問父類的私有成員

class

person};

intmain()

在c++中struct和class唯一的區別就在於預設的訪問許可權不同

區別:(1)struct預設許可權為公有

(2)class預設許可權為私有

#include

#include

using

namespace std;

//struct預設許可權是公有

//class預設許可權是私有

classc1;

struct c2

;int

main()

優點:

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

(2)對於寫許可權,我們可以檢測資料的有效性

#include

#include

using

namespace std;

//成員屬性設定為私有

//1.自己控制讀寫許可權

//2.對於寫許可權可以檢測資料的有效性

class

person

string getname()

//年齡:

intgetage()

void

setage

(int age)

m_age = age;

}//情人:只寫

void

setlover

(string lover)};

intmain()

案例1:設計立方體類,求出立方體的面積和體積,分別用全域性函式和成員函式判斷兩個立方體是否相等

#include

#include

using

namespace std;

//設計立方體類,求出立方體的面積和體積,

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

class

cube

//獲取高

intgeth()

//設定寬

void

setw

(int w)

//獲取寬

intgetw()

//設定長

void

setl

(int l)

//獲取高

intgetl()

intsquare()

//面積

intvolume()

//體積

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

bool

judge

(cube& c)

else}}

;bool

judge

(cube c1, cube c2)

//值傳遞,需要開闢記憶體空間,可以把引數改為 cube &c1,cube &c2這樣不用開闢空間

else

}int

main()

案例2:點和圓的關係,設計乙個圓類,和乙個點類,計算點和圓的關係

注意:圓的圓心是點

#include

#include

using

namespace std;

//點和圓的關係,設計乙個圓類,和乙個點類,計算點和圓的關係

class

point

intshowx()

//設定y,獲取y

void

sety

(int new_y)

intshowy()

};class

circle

intshowr()

//設定圓心,獲取圓心

void

setcenter

(point point)

point showcenter()

};//判斷點和圓的關係

void

judge

(point point, circle circle)

else

if(distence>r_2)

else

}int

main()

C 核心程式設計 4 類和物件 封裝

c 物件導向的三大特性 封裝 繼承 多型 c 認為萬事萬物皆為物件,物件上有其屬性和行為 封裝意義 1 將屬性和行為作為乙個整體,表現生活中的事物 語法 class 類名 例項 設計乙個圓類,求圓的周長 include include using namespace std 設計乙個圓類,求圓的周長...

C 類和物件 封裝

c 物件導向三大特性 封裝 繼承 多型 將屬性和行為作為乙個整體,表現生活中的事物 將屬性和行為加以許可權控制 public 公共許可權 類內可以訪問,類外可以訪問 protected 保護許可權 類內可以訪問,類外不可以訪問 private 私有許可權 類內可以訪問,類外不可以訪問 在c 中str...

封裝屬性 C 核心程式設計 封裝

封裝是c 物件導向三大特性之一 封裝的意義 封裝意義一 在設計類的時候,屬性和行為寫在一起,表現事物 語法 class 類名 示例1 設計乙個圓類,求圓的周長 示例 圓周率 const double pi 3.14 1 封裝的意義 將屬性和行為作為乙個整體,用來表現生活中的事物 封裝乙個圓類,求圓的...