c 類和類的封裝

2021-09-02 02:11:48 字數 1952 閱讀 9134

1.類和類成員

c++提供了如char、int、long、float、double等基本資料型別,足夠用來解決大多數哦相對簡單的問題,但對於複雜的問題就比較困難了。

c++的乙個實用特性是自定義資料型別;如之前的列舉和結構體:

struct goods

struct 類中預設訪問限定符是公有的,oop類中預設訪問限定符是私有的;

類的封裝:訪問限定符

public:任意位置都可以進行訪問

protect:子類、本類類中允許訪問

private:本類類中訪問

class cgoods

void buy()

private:

char* mname;

float mprice;

int mamount;

};

物件的生成:

(1)物件開闢記憶體空間;

(2)物件記憶體做初始化,呼叫建構函式

物件的銷毀:

(1)釋放物件所佔的其他資源,呼叫析構函式;

(2)釋放物件所佔的記憶體空間;

二、c++中的六個預設函式(若程式不定義或不呼叫,編譯器自動定義或呼叫的函式)

(1)建構函式:

類的一種特殊的成員函式,當類被例項化時執行;通常用以初始化。

建構函式有明確的命名規則:a)函式名必須和類名一樣;b)無返回型別(包括void)。

無參建構函式-不帶引數的建構函式,是類的預設建構函式

class test

test(int a)

test()

test(const test& rhs)

(2)析構函式:

析構函式(destructor) 與 建構函式相反,當物件結束其 生命週期時(例如物件所在的函式已呼叫完畢),系統             自動          執行析構函式。當程式中沒有析構函式時,系統會自動生成析構函式。

特點:不可過載、可以手動進行呼叫,先構造,後析構。

作用:釋放物件資源。

~test()

(3)拷貝建構函式:

由編譯器呼叫來完成一些基於同一類的其他物件的構建及初始化(預設為淺拷貝)

拷貝構造函式呼叫的三種形式

(1)乙個物件作為函式引數,以值傳遞的方式傳入函式體;

(2)乙個物件作為函式返回值,以值傳遞的方式從函式返回;

(3)乙個物件用於給另外乙個物件進行初始化(常稱為複製初始化)。

class test

test(int a)

test()

test(const test& rhs)

test& operator=(const test& rhs)

return *this; //拷貝建構函式

} ~test()

(4)賦值運算子的過載函式:

1.判斷自賦值;

2.釋放舊資源;

3.開闢新資源;

4.賦值;     

形參中const的作用:1.防止實參被修改;2.接收隱式生成的臨時量;

cgoods(const cgoods& rhs)

//普通建構函式

cgoods& operator=(const cgoods& rhs) //賦值運算子過載函式

return *this;

} ~cgoods() //呼叫析構函式

後面還有

5.取位址操作符的過載函式

6.const修飾的取位址操作符的過載函式

這兩個在c++中應用不太常見,因此在這裡不做描述;

類和類的封裝

在日常生活中,我們總是將事物進行分門別類。列如 電腦,手機,相機等等,這些稱呼都是對於某一類事物的總稱。我們還能將電腦按照品牌分類,比如,戴爾電腦 惠普電腦 蘋果電腦 華碩電腦等。這些都是抽象的概念。我的電腦這個實體,它就是乙個具體的事物,我的電腦是戴爾的,但我不能說戴爾電腦是我的電腦。類和物件是面...

C 類和物件 封裝

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

C 類的封裝

1 private,public,protected的訪問範圍 private 只能由該類中的函式 其友元函式訪問,不能被任何其他訪問,該類的物件也不能訪問.protected 可以被該類中的函式 子類的函式 以及其友元函式訪問,但不能被該類的物件訪問 public 可以被該類中的函式 子類的函式 ...