類:
成員變數屬於類的物件上的;
靜態成員變數不屬於類的物件上
非成員變數不屬於類物件上
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 私有的,類的內...