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);
值傳遞的方式給函式引數傳值
voiddowork(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。建構函式 類的建構函式是一種特殊的函式,在建立乙個新物件是呼叫。析構函式 類的析構函式也是一...