c 物件 封裝 繼承 多型

2021-10-19 18:00:55 字數 1809 閱讀 8658

類:

成員變數屬於類的物件上的;

靜態成員變數不屬於類的物件上

非成員變數不屬於類物件上

this指標的本質是指標常量

this指標指向的是被呼叫的成員函式 所屬的物件;可以解決名稱衝突,也可以返回物件本身用*this(用引用的方式返回person & personadd(p1)

常函式:成員函式後面加const 稱這個函式為常函式

mutable int m_age;//加上const就是不能修改this指標指向的值,

而變數前加mutable是可以修改的,變數就特殊了

void showperson() const

常物件只能呼叫常函式;

封裝把屬性,行為整體封裝成乙個類;

例項化:通過乙個類,建立乙個物件的過程;

屬性和行為都成為成員

屬性:成員屬性、成員變數、

行為:成員函式、成員方法

訪問許可權:

public: 成員 類內可以訪問、類外也可以

protected:成員 類內可以訪問、類外不可以訪問//兒子可以訪問

private: 成員 類內可以訪問、類外不可以訪問//只有自己可以訪問

建構函式:

進行初始化操作,沒有返回值、函式名和類名相同;可以有引數、可以發生過載,

系統會空實現乙個,如果自己寫,就用自己的,建構函式由系統自動呼叫,只呼叫一次;

class person

~person()

};void test01()

int main()

結束的時候才會呼叫析構函式

匿名物件:當行構造,那行直接析構,

person(10)//

不要離用拷貝建構函式 初始化乙個匿名物件

person p1;

person(p2);//==person p2;相當於無參構造乙個p2,如果前面有person p2;則會報錯;

隱式轉換法:

person p4=10;//相當於 person p4= person (10);

括號法:

class person

person(int a)//有參構造

person(const person &p)****//拷貝建構函式,加const防止修改

~person()

int m_age;

};int main()

拷貝構造的呼叫時機

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

值傳遞的方式給函式引數傳值:值傳遞就會拷貝物件給乙個臨時的值;

值方式返回區域性物件

c++編譯器至少給乙個類新增3個函式

預設構造、預設析構、預設拷貝構造

如果使用者自定義有參構造,編譯器不會再提供預設構造,但是會提供拷貝構造

如果使用者自定義拷貝構造,編譯器不會提供其他構造

同名函式****同名靜態成員

子類物件可以直接訪問到子類中同名函式

訪問父類同名函式的時候要加作用域

當子類有同名函式的時候,會隱藏所有的父類同名函式

靜態成員同理,

除此外還可以通過類名的方式訪問son::m_a;

son::base::m_a第乙個::代表通過類名訪問第二個::表示訪問父類的成員

C 物件導向(封裝,繼承,多型)

c 封裝繼承多型總結 物件導向的三個基本特徵 物件導向的三個基本特徵是 封裝 繼承 多型。其中,封裝可以隱藏實現細節,使得 模組化 繼承可以擴充套件已存在的 模組 類 它們的目的都是為了 重用。而多型則是為了實現另乙個目的 介面重用!封裝 什麼是封裝?封裝可以隱藏實現細節,使得 模組化 封裝是把過程...

C物件導向(封裝 繼承 多型)

物件導向的基本思考方式是的將資料和處理資料的行為放在一起,降低耦合性,其要點就是不要將資料和處理資料的行為分開。所謂多型性就是指從呼叫者的角度看物件,會發現它們非常相似,難以區分,但是這些被呼叫物件的內部處理實際上各不相同。結構體宣告和呼叫 typedef struct validator vali...

物件導向 封裝 繼承 多型

物件導向 封裝 繼承 多型物件導向 封裝 一 封裝 private 資料型別 名字 成員變數 public 預設一致 名字 屬性 set 類中不僅可以有成員變數和屬性,還可以有成員方法 訪問修飾符 4個 public 公共的,任何地方都可以訪問,但是需要引用 命名空間 private 私有的,類的內...