C 類和物件

2022-07-22 07:51:14 字數 1896 閱讀 7484

c++中物件導向的三大特徵為:封裝、繼承、多型。

封裝

封裝的意義:

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

訪問許可權

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

保護許可權 protect 成員 類內可以訪問 類外不可以訪問  兒子也可以訪問父親中的保護內容

私有許可權 private 成員 類內可以訪問 類外不可以訪問  兒子不可以訪問父親的私有內容

建構函式和析構函式

這兩個函式將會被編譯器自動呼叫,完成物件的初始化和清理工作

建構函式:主要作用於建立物件時為物件的成員屬性賦值,析構函式由編譯器自動呼叫,無需手動呼叫

沒有返回值也不寫void

函式名稱與類名相同

建構函式可以有引數,因此可以發生過載

程式在呼叫物件時候回自動呼叫建構函式,無需手動呼叫,而且只會呼叫一次

析構函式:主要作用域物件銷毀前系統自動呼叫,執行一些清理工作

沒有返回值不寫void

函式名稱與類名相同,在名稱前加上符號~

析構函式不可以有引數,因此不可以發生過載

程式在物件銷毀前會自動呼叫析構,無需手動呼叫,而且只會呼叫一次

建構函式的分類及呼叫

兩種分類方式:

按引數分類:有參建構函式和無參建構函式

按型別分:普通建構函式和拷貝構造

//拷貝建構函式

person(const person &p)

三種呼叫方式:

括號法

//

括號法person p1;//

預設構造函式呼叫

person p2(10);//

有參建構函式

person p3(p2);//

拷貝建構函式

顯式法

//

顯式法person p1;//

預設構造函式呼叫

person p2=person(10);//

有參建構函式

person p3=person(p2);//

拷貝建構函式

person(10);//匿名物件 特點:當前執行結束後,系統會立即**掉匿名物件

隱式轉換法

person p4=10;//

相當於寫了 person p4=person(10);

拷貝構造函式呼叫時機

使用乙個已經建立完畢的物件來初始化乙個新物件

person p1(20

);person p2(p1);

值傳遞的方式給函式引數傳值

void

dowork(person p)

person p;

dowork(p);

以值方式返回區域性物件

person dowork()

person p=dowork()

深拷貝和淺拷貝

淺拷貝:簡單的賦值拷貝操作

問題:堆區的記憶體重複釋放

淺拷貝的問題要利用深拷貝進行解決

深拷貝:在堆區重新申請空間,進行拷貝操作

初始化列表初始化屬性

直接在建立建構函式時將屬性進行初始化

person():m_a(10),m_b(20),m_c(30

)

當其他類物件作為本類成員,構造時候先構造類物件,再構造自身,析構的順序與構造相反

C 類和物件 類和物件

c 中物件的型別稱為類,類代表了某一批物件的共性和特徵,類是物件的抽象,而物件是類的具體例項,類是抽象的,不占用記憶體,而物件是具體的,占用 儲存空間,這點很重要,讀者需要牢記。類是使用者自己指定的型別,如果程式中要用到類型別,必須自己根據需要進行宣告,或者使用別人已設計好的類,c 標準本身並不提供...

C 物件和類

1,特殊的類 字串string include include using namespace std int main 類似於標準庫函式,我們不需要記住每種 類 的全部操作,只需要在使用過程中記住一些常用的操作就可以了。如果有需要的話,可以求助於相關書籍或網路 2,當我們對string進行種種操作...

C (類和物件)

類成員函式 類的成員函式指標那些把定義和原型寫在類定義內部的函式,就想類定義中的其他變數一樣。類訪問修飾符 類成員可以定義為public,private或protected。預設情況下是定義為private。建構函式 類的建構函式是一種特殊的函式,在建立乙個新物件是呼叫。析構函式 類的析構函式也是一...