c 物件導向

2021-10-18 07:47:34 字數 2807 閱讀 6597

3.多型

class內都是成員函式,一切都放在這裡

public公共許可權 成員類內可以訪問 類外可以訪問

protected保護許可權 成員類內可以訪問 類外不可以訪問

private私有許可權 成員類內可以訪問 類外不可以訪問

struct預設許可權為公有public

class預設許可權為私有private

成員屬性設定為私有的好處:

1.可以自己控制讀寫許可權。

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

例子:

#include

using

namespace std;

#include

//設計人類

class

person

//獲取姓名

string getname()

intgetage()

//可以進行年齡修改

void

setage

(int age)

//設定情人

void

setlover

(string lover)

private

://姓名 可讀可寫

string m_name;

//年齡 唯讀

int age;

//情人 只寫

string m_lover;};

intmain()

繼承(減少重複**)

class a:public b;

a:類稱為子類或派生類

b:類稱為父類或基類

派生類的成員,包含兩大部分:

1.一類是從基類繼承過來的,一類使自己增加的成員。

2.從基類繼承過來的表現其共性,而新增的成員體現了其個性。

繼承方式:

繼承的語法:class 子類:繼承方式 父類

三種:1 公共繼承。2 保護繼承。3私有繼承。

父類中的公共許可權成員 到子類中依然是公共許可權

父類中的保護許可權成員 到子類中依然是保護許可權

父類中的私有許可權成員 子類訪問不到

繼承中的物件模型:

1.父類中所有非靜態成員屬性會被子類繼承下去

2.父類中私有成員屬性 是被編譯器隱藏了,因此訪問不到,但確實被繼承下去了

繼承同名成員處理方式:

1.訪問子類同名成員,直接訪問即可

2.訪問父類同名成員,需要加作用域

3.當子類與父類擁有同名的成員函式,子類會隱藏父類中同名成員函式,加作用域可以訪問父類中同名函式。

例子:

#include

using

namespace std;

#include

class

base

static

void

func

(int a)};

int base::m_a =

100;

class

son:

public base};

int son::m_a =

200;

//同名靜態成員屬性

void

test01()

//同名靜態成員函式

void

test02()

intmain()

多繼承語法

(允許乙個類繼承多個類,實際開發不建議)

1.靜態多型:函式過載和運算子過載屬於靜態多型,復用函式名

2.靜態多型:派生類和虛函式實現執行時多型

3.靜態多型和動態多型區別

靜態多型的函式位址早繫結-編譯階段確定函式位址

動態多型的函式位址晚繫結-執行階段確定函式位址

例子:

#include

using

namespace std;

#include

//動物類

class

animal};

//貓類

class

cat:

public animal};

//狗類

class

dog:

public animal};

//執行說話函式

//位址早繫結 在編譯階段確定函式位址

//如果想執行讓貓說話,那麼這個函式位址就不能提前繫結,需要在執行階段進行繫結,就是位址晚繫結

//動態多型滿足條件

//1.有繼承關係

//2.子類重寫父類的虛函式

//動態多型使用

//父類的指標或者引用 指向子類物件

void

dospeak

(animal& animal)

//相當於animal& animal=cat

void

test01()

intmain()

純虛函式和抽象類

virtual 返回值型別 函式名 (引數列表)=0;

當類中有了純虛函式,這個類稱為抽象類

特點:1.無法例項化物件

2.子類必須重寫抽象類中的純虛函式,否則也屬於抽象類

虛析構和純虛析構

虛析構和純虛析構共性:

可以解決父類指標釋放子類物件。

都需要有具體的函式實現。

虛析構和純虛析構區別:

如果是純虛析構,該類屬於抽象類,無法例項化物件。

虛析構語法

virtual~類名(){}

純虛析構語法:

virtual~類名()=0;

類名::~類名(){}

c 物件導向程式設計 物件導向

什麼是物件導向 是對現實世界理解和抽象的方法。物件導向程式設計的特點 易維護,易擴充套件,靈活性好,重用 類 對事物的抽象定義,即事物具有的共同特徵和行為。物件 即對類進行例項 類是抽象的,物件是具體的 類的定義 語法 訪問修飾符 class 類名類的成員 包括字段,屬性,方法,常量,事件和索引器等...

C 物件導向

它定義了類的物件包括了什麼屬性,以及可以執行哪些操作 呼叫函式 class box 關鍵字 public 確定了類成員的訪問屬性.在類物件作用域內,類的外部是可訪問的 也可以指定類的成員為 private 或 protected box box1 宣告物件 box1,型別為 box box box2...

c 物件導向

0,類變數的申明可以不賦初始值 int 型別的為0,引用型別預設值為null,bool型別為false 1.物件導向的三大特點 封裝 0增加安全 1 良好的封裝能夠減少耦合 2 類內部的實現可以自由地修改 3 類具有清晰的對外介面 繼承 子類是乙個物件,父類的成員只是子類的引用 在繼承時子類的訪問修...