1. 程式人生 > >C++中的類與菠菜平臺一條龍

C++中的類與菠菜平臺一條龍

數據 類的方法 函數 實例化 概念 抽象 () c++ 默認

面向菠菜平臺一條龍,需要的請搜索dsluntan.com 對象最大的特征就是提出了類和對象的概念。在以面向對象的方式開發應用程序時,將遇到的各種事物抽象為類,類中通常包含數據和操作數據的方法,用戶通過實例化類對象來訪問類中的數據和方法。

類的定義:

class/struct 類名 //類頭

{數據和方法的定義}; //類體

1、類體中的數據描述的是類的特征(屬性),方法是類中定義的函數,描述類的行為。

2、使用class和struct的唯一區別是:使用class定義的類在沒有被強制限定的話,其成員時私有的,既不能被外部調用。使用struct的話,其成員是公共的,可以被外部調用。

3、類體由花括號包圍形成一個新的作用域。類內部定義的名字必須唯一,但是可以與外部定義的名字重復。

4、C++11新標準規定,可以為數據成員提供一個類內初始值。在創建對象時,類內初始值將用於初始化數據成員,沒有初始值的成員將被默認初始化。但是需要註意:類內初始值要麽放在等號右邊,要麽放在花括號內,記住不能使用圓括號。

5、所有成員的聲明都必須在類的內部,但是成員函數體的定義則既可以在類的內部也可以在類的外部。當定義在類的外部時函數名之前需要加上類名和作用域運算符(::)以顯式的指出該函數是對應類的成員函數。

6、定義在類內部的函數是隱式的inline函數。

7、可以在定義類的同時定義定義對象

class p{int a;int b();}p1,p2;

也可以先定義類,然後再定義對象。這裏需要註意:與C中的結構體等對象的定義不同,C++允許直接使用類名而不需要之前的class或struct限定符,而C中限定符是必不可少的,它甚至是類型名的一部分。

C++: struct p{int a;int b;};

              p p1;

C: struct p{int a;int b;};

             struct p p1;

8、使用訪問說明符可以加強類的封裝性:

8.1、定義在public說明符之後的成員在整個程序內可被訪問,public定義類的接口。

8.2、定義在private說明符之後的成員可以被類的成員函數訪問,但是不能被使用該類的代碼訪問也不能被派生類訪問,private部分封裝(隱藏)了類的實現細節。

8.3、定義在protected之後的成員被稱為保護成員,該成員只能在該類和該類的派生類(子類)中訪問。

8.3、訪問說明符的優先級是高於使用class和struct的默認訪問屬性的。

8.4、一個類可以包含任意數量的訪問說明符。

9、在定義類的方法(成員函數)時,如果不需要在方法中修改類的數據成員,建議在方法聲明和定義的參數列表後都使用const關鍵字,表示用戶不能再該方法中修改類的數據成員,這樣的成員函數稱為常亮成員函數。常量對象,以及常量對象的引用或指針都只能調用常量成員函數。

記住,這裏的const是個頂層const,也就是說如果類中包含指針成員,此時這個指針就是個常亮指針,不能改變指向,但可以改變所指元素的值。

class p

{

     int a(int a,int b) const;

};

int a(int a,int b) const

{

     //不能修改類成員的值

}

C++中的類與菠菜平臺一條龍