我們要明確,不只是C++有類,很多語言也會用到類,因為現在很多都是面向對象編程...
在c++中,關於類的理解,個人理解是這樣的,具有共同屬性的一個集合被稱為類,
比如說人這個集合,具有性別,年齡,出生日期等屬性,可以構成一個類的成員,除此此外,
如果這個類具有共同的技能的話,我們也可以把這種技能稱之為共同的方法,常見的類的
修飾符有private即私有的成員修飾,public即修飾共同的成員,一般類可以看作是Java中的
一個包類中提供了數據表示即成員函數和操作數據的方法即成員函數如何使用的方法。
一般的話,類的規范說明由兩個部分組成:
1、類的聲明,即類的成員函數的聲明,以成員函數的方式被稱作公有接口
補充知識:接口慨念
接口就是一個共享的框架,主要由我們自己寫的方法所提供
2、類的方法的定義,即如何實現類的成員函數
#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)。
這樣的設置時程序更容易維護,並且可避免一些不應有的錯誤。