C++ 理解類 和 類中的public、protected、private

咱們要明確,不僅是C++有類,不少語言也會用到類,由於如今不少都是面向對象編程...c++

在c++中,關於類的理解,我的理解是這樣的,具備共同屬性的一個集合被稱爲類,編程

好比說人這個集合,具備性別,年齡,出生日期等屬性,能夠構成一個類的成員,除此此外,框架

若是這個類具備共同的技能的話,咱們也能夠把這種技能稱之爲共同的方法,常見的類的函數

修飾符有private即私有的成員修飾,public即修飾共同的成員,通常類能夠看做是Java中的spa

一個包類中提供了數據表示即成員函數和操做數據的方法即成員函數如何使用的方法。code

     通常的話,類的規範說明由兩個部分組成:對象

一、類的聲明,即類的成員函數的聲明,以成員函數的方式被稱做公有接口blog

    補充知識:接口慨念接口

   接口就是一個共享的框架,主要由咱們本身寫的方法所提供面向對象編程

二、類的方法的定義,即如何實現類的成員函數

#define:

  1.關鍵字public能夠將類的成員說明爲是公有的,及能夠被該類的全部成員所訪問;
  2.關鍵字private能夠將類的成員說明爲是私有的,它不能直接被對象訪問。

  其實,說白了就是對於公有成員,咱們能夠利用對象來進行直接調用,好比說:

 1 class Cat
 2 
 3 {
 4 
 5     public:
 6 
 7     int weight;   
 8 
 9 };
10 
11 int main()
12 
13 {
14 
15     Cat cat;//聲明一個對象
16 
17    cat.weight=5;
18 
19     cout<<"The cat's weight is "<<cat.weight<<endl;
20 
21     return 0;
22 
23 }

在上面這個程序中,因爲Cat類中的成員函數weight被聲明成了公有成員,那麼咱們就能夠在主窗口中首先建立一個Cat類的對象(cat),並利用.運算符就能夠直接調用weight這個數據成員了。

  可是,值得注意的是,若是咱們想要把上面程序中的public刪除掉,改爲private。那麼這個時候,咱們就沒法在由Cat類所聲明的對象中調用這個weight成員。這是,只有經過在類中設置一個公共的接口函數,才能實現對weight的訪問,以下例:

 1 class Cat
 2 
 3 {
 4 
 5    public:
 6 
 7    void setWeight(int w){weight=w;}//設置重量
 8 
 9    int print(){return weight;}//返回重量的大小
10 
11    
12 
13   private:
14 
15    int weight;  
16 
17 };
18 
19 int main()
20 
21 {
22 
23     Cat cat;
24 
25     cat.setWeight(5);//設置cat的重量爲5
26 
27     cout<<"The cat's weight is "<<cat.print()<<endl;
28 
29     return 0;
30 
31 }

                                  ==================================總結========================================

  在通常狀況下,咱們能夠將類的數據成員設置爲私有的,而後調用類中的公共該接口函數來訪問他們。這樣作的好處是將數據的賦值與讀取分開操做。好比說上例裏面,咱們就將數據的賦值函數設置成setWeight(int),將數據的讀取函數設置成print()。這樣的好處就是賦值函數不須要考慮讀取函數是如何工做的,讀取函數中的代碼改變也不會影響到相應的賦值函數。那麼這樣就提升了代碼的可重用性。另外,因爲將數據成員進行了私有化,那麼各個對象不能夠直接訪問並修改數據。好比說上例中想要直接修改weight的數值就是不合法的,只有經過公共的接口函數才能訪問而且修改到類裏面的私有數據成員(weight)。

  這樣的設置時程序更容易維護,而且可避免一些不該有的錯誤。

相關文章
相關標籤/搜索