C++類和對象知識點整理二

7、類的成員變量和成員函數
類的成員變量和普通變量一樣,也有數據類型和名稱,佔用固定長度的內存,但是,在定義類的時候不能對成員變量賦值,因爲類只是一種數據類型或者說是一種模板,本身不佔用內存空間,而變量的值則需要內存來存儲


b.類的成員函數作用範圍由類來決定
在類內直接定義函數時,不需要在函數名前加上類名,但當成員函數定義在類外時,就必須在函數名前加上類名限定,::被稱爲域解析符並且成員函數必須先在類體中作原型聲明,然後才能在類外定義,也就是說類體的位置應在函數定義之前


c.內聯函數
在類體內和類體外定義成員函數是有區別的:在類體內定義的成員函數會自動成爲內聯函數(類體內部定義的函數默認就是內聯函數)
如果你既希望將函數定義在類體外部,又希望它是內聯函數,那麼可以在定義函數時加inline關鍵字(編譯時會忽略函數聲明處的inline)


8、訪問權限
public  protected  private
三個關鍵字被稱爲成員訪問限定符
當然,在類的內部,無論成員被聲明爲哪一種權限,都是可以互相訪問的,沒有訪問權限的限制


b.類的聲明和成員函數的定義都是類定義的一部分,在實際開發中,我們通常將類的聲明放在頭文件中,而將成員函數的定義放在源文件中


編程之美:成員變量大都以m_開頭,這是約定成俗的寫法,不是語法規定的內容,以m_開頭既可以一眼看出這是成員變量,又可以和成員函數中的形參名字區分開




9、類的封裝
private關鍵字的作用在於更好的隱藏類的內部實現,該向外暴露的接口(能通過對象訪問的成員)都聲明爲Public,不希望外部知道、或者只是在類內部使用、或者對外部沒有影響的成員都建議聲明爲private;


那麼,將成員變量都聲明爲private,如何給他們賦值,又如何讀取他們的值呢?
a.我們可以額外添加兩個public屬性的成員函數,一個用來設置成員變量的值,一個用來修改成員變量的值。
如setName(),getName();
b.除了SET,GET函數,在創建對象的時候還可以調用構造函數來初始化各個成員變量(構造函數只能給成員變量賦值一次)


這種將成員變量聲明爲private,將部分
成員函數聲明爲Public的做法體現了類的封裝性,所謂封裝,是指儘量隱藏類的內部實現,值向用戶提供有用的成員函數。

























































































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章