C 之物件與類

2021-09-29 10:25:25 字數 3197 閱讀 9372

主要的oop特性:

定義類的過程:

類宣告:以資料成員的方式描述資料部分,以成員函式的方式描述公用介面。

類方法定義:描述如何實現對應的成員函式。

//宣告,也即是原型

class

stack

//直接定義的函式,將作為內聯函式

void

func1()

const

;//const 函式

intfunc2()

;stack()

;//預設建構函式

stack

(int m,

int n,

double q)

;//建構函式

~stack()

;//析構函式};

//定義過程,完成函式的定義

void stack::

func1()

const

stack::

stack()

訪問型別

類和結構的唯一區別在於,結構的預設訪問型別是public,而類的預設訪問型別為private。

成員函式

若某個成員為private,則只能通過公有的方法呼叫該方法進行使用。

定義位於類宣告中的函式,將自動成為內聯函式。(內聯函式在每個使用它們的檔案中都要對其進行定義)。

資料成員

每個物件的儲存空間都只是它們的資料成員。也就是說,成員函式是一整個類的公有的部分

在建構函式和析構函式中,可以使用物件中資料成員。

建構函式:

stack food=stack

;//#1建構函式

stack food

;//#2建構函式

stack food;

//#3預設建構函式

預設建構函式:

當沒有定義建構函式時,編譯器將提供乙個空的預設建構函式。

若定義了乙個建構函式後,則必須再提供乙個預設建構函式。

構造預設建構函式的方法:

析構函式:

如果沒有定義析構函式,編譯器會預設提供乙個析構函式。

可以通過析構函式觀察得到,最先建立的物件,最後被清除。這是因為程式過程中,自動變數是儲存在棧中的。

如果建構函式中使用了new語句,則在析構函式中一定要使用delete語句。

const成員函式主要用於避免對物件成員進行修改。

class

stack

;void stack::

show()

const

const stack no_1;

//表明物件no_1不可被修改,只能呼叫stack類中的const成員函式

this指標指向的是自身物件。*this是自身物件的別稱。

每個成員函式(建構函式和析構函式)都有乙個this指標。this指標指向呼叫物件。

應用例項:通過成員函式,來比較自身物件和另乙個物件的數值大小。

stack &

func

(const stack & temp)

const

stack buffer[4]

;//呼叫預設建構函式

stack buffer[4]

=;//呼叫建構函式進行初始化定義

stack one=

stack()

;//預設建構函式

stack two=

stack

(a,b)

;//建構函式,拷貝初始化

stack three;

//預設建構函式

stack four

(a,b)

;//建構函式,直接初始化

物件初始化示例**

#include

#include

#include

using

namespace std;

class

person

person

(const string & ln,

const

char

*fn=

"heyyou");

void

show()

const

;void

formalshow()

const;}

;int

main()

person::

person

(const string & ln,

const

char

*fn)

//定義處不寫預設值

void person::

show()

const

void person::

formalshow()

const

類中宣告的名稱:變數或者成員函式的名稱,作用域都是整個類。

在類宣告之外,定義成員函式時,必須使用作用域解析符,如stack::。

在類中宣告乙個常量有兩種方式:

可以用於設計佇列,堆疊,等抽象的資料型別。

//堆疊基礎實現 :只能儲存特殊的資料型別

#include

using

namespace std;

struct customer

;class

stack

customer pop()

;void

push

(const customer & temp)

;bool

is_full()

;bool

is_empty()

;};int

main()

while

(!one.

is_empty()

)}customer stack::

pop(

)void stack::

push

(const customer &temp)

bool stack::

is_full()

bool stack::

is_empty()

C 類與物件

程式設計模型 所有計算機均由兩種元素組成 和資料.精確的說,有些程式是圍繞著 什麼正在發生 而編寫,有些則是圍繞 誰正在受影響 而編寫的.抽象封裝 封裝是一種把 和 所操作的資料 在一起,使這兩者不受外界干擾和誤用的機制.繼承 繼承是指乙個物件從另乙個物件中獲得屬性的過程.是物件導向程式設計的三大原...

C 類與物件

c 類與物件 區分物件導向與面向過程 物件導向是指一種程式設計范型,同時也是一種程式開發的方法。它將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性 靈活性和擴充套件性。物件導向 利用物件間的訊息傳遞來驅動程式的執行。優點 真實表現客觀世界,物件間的關係清晰,物件間的訊息處理高效。面...

C 類與物件

類是物件導向的核心機制,是物件導向設計中對具有相同或相似性質的物件的抽象,是對資料和操作進行封裝的載體,進而保證了對資料的安全 高效 合理的訪問 物件是類的例項,是類的具體個體,對應現實世界的實體。類的定義 class 類名 void showclock 習慣上在類的宣告中只定義函式的原型,在類外定...