4、面向对象
 
1.基本的概念
??? 類,指的是莫一類的事物的概括,是一個抽象的 
??? 對象:指的是某一類里面的一個實體,是具體的
類:
??? 通常包含了屬性和行為。屬性:被描述類的靜態的特征,老虎的顏色、體重等靜態的屬性;行為:描述類的動態特征,比如跑
類的繼承:
??? 繼承之后的類,繼承了原先的類的所有的屬性和行為;繼承之后的類,也可以有自己特有的屬性和行為:
????????????????????????????
??? 在類A的基礎上建立一個新類B,類A成為基類或者父類,類B成為派生類或者子類;子類完全繼承父類的所有的成員。
class 子類名字 : 繼承的方式 父類的名字 { } 繼承的方式:public /private/protected,如果省略的話,系統默認的是 private
2.類的封裝
??? 類的封裝就是將不同的屬性和行為結合在一起,形成一個新的數據類型。 
??? 成員變量:表示類的屬性
??? 成員函數:表示類的行為的函數,
分為:共有、私有、保護 三種類型
公有:成員變量和成員函數可以被類內和外界訪問和調用,也就是共有的成員可以通過變量被外接訪問
私有:成員變量和成員函數只能被類的內部訪問和調用,也就是說 私有的成員只能在類的內部使用
?
3.struct 和 class 區別:
??? struct 定義類的時候,所有的成員默認的都是 public  
??? class定義類的時候,所有的成員默認的都是私有的
?
4、構造函數
??? 構造函數的作用是完成,類的對象初始化,他的名字和類名完全一致,可以有參數,但是必須沒有任何的返回值
class Test { public:Test(int v); // 構造函數~Test();int getValue(); private:int i; };Test::Test(int v) // 構造函數 {i = v; } Test::~Test() { } int Test::getValue() {return i; }int main(int argc, char **argv) {Test aa(5); // 對象的初始化Test bb = 5; // 對象初始化的方式2Test cc = Test(6); // 主動調用構造函數printf("v = %d\n", aa.getValue()); }
?
類的成員函數實現重載:
C++中函數可以實現函數的重載,構造函數其實也是可以實現重載的功能的:
class A { private:int i; public:A() // 重載 {i = 11;}A(int v) // 重載 {i = v;}int getvalus(){return i;} };
顯然,類的對象定義的時候,即使你沒有進行初始化,編譯器還是會自動完成對象的初始化,
構造函數的異類:
默認構造函數、拷貝構造函數(完成對象的拷貝的任務)
A aa; // 調用默認的構造函數,無參 A bb = aa; // 調用拷貝構造函數
數
當類內自己沒有定義構造函數和拷貝構造函數的時候,編譯器會為你自動添加一個無參的構造函數,其函數體為空。而默認提供的拷貝構造函數,也只是簡單的進行成員變量的值復制。
當類A的對象是類B的成員變量的時候:初試列表的使用
class A { private:int i; public:A(int v){i = v;} }; class B { public:B() {printf("BB\n");} private:const int c; // const 變量必須初始化A a1; // 對象也是需要進行初始化 A a2; };
??? 這個時候,會被報錯,因為A的對象在B做成員的變量,壓根就沒有被初始化,所以在B內部需要給成員變量初始化,初始化列表:
class B { public:B() : c(1), a1(2), a2(3) // 構造函數里面,指定初始化的值,初始化列表 {printf("BB\n");} private:const int c;A a1;A a2; };
??? 也就是說,通過初始化列表,對成員變量進行初始化,并且初始化列表的執行是先于構造函數的函數體執行的;也就是使用初始化列表對構造函數進行成員變量的初始化,
5.析構函數
??? 就是在對象被銷毀之前調用的析構函數(完成一些清理的工作),析構函數沒有參數,也沒有任何的返回值類型 
~ 類名()
{
}??? 當自己沒有寫構造函數或者析構函數的話,編譯器會自動為我們添加構造函數和析構函數。
??? 析構函數當且僅當只有一個。析構執行的調用順序與對應的構造函數調用秩序相反。
轉載于:https://www.cnblogs.com/qxj511/p/5215304.html
總結
 
                            
                        - 上一篇: 天燃气是多少钱一度?
- 下一篇: 切割机多少钱一台啊?
