<五>關于類的各類成員

類的各種成員-> 成員方法 & 成員變量
普通的成員方法=>編譯器會添加一個this形參變量1:屬于類的作用域2:調用該方法時,需要依賴一個對象,而且常對象不能調3:可以任意的訪問對象的私有成員變量
const 常成員方法 => const student *this1:屬于類的作用域2:調用依賴對象,普通對象和常對象都可以調用3:可以任意訪問對象的私有成員,但是只能讀,不能寫.
static 靜態成員方法=>編譯器不會添加this形參變量1:屬于類的作用域2:用類名作用域來調用方法3:可以任意訪問對象的私有成員,僅限于不依賴對象的成員(只能調用其他的static靜態成員)
注意:只要是普通方法只設計讀操作,就一定設置為常成員方法,這樣普通對象和常對象都可以調

點擊查看代碼class people{public://普通的成員方法,通過對象來調用該方法,產生this指針,接受對象調用時,傳遞過來的地址void setAge(int _age){this->age=_age;}//常成員方法void showAget() const {cout<<age<<endl;}// 靜態成員方法,通過類名作用域來調用靜態方法,不產生this指針,所以不需要通過對象調用static void showCounter(){cout<<counter<<endl;}private://普通成員變量int age;//靜態成員變量static int counter;//聲明};//static 成員變量一定要在類外定義并做初始化,所有對象共享,不屬于對象,屬于類級別int people::counter=0; //int main(){people p1;people p2;//static int counter 是p1和p2公用的,people對象在計算存儲空間的時候是不考慮 靜態變量//p1對象和p2對象存儲在棧上, static int counter 存儲在數據段上.bss段上return 1;}
const pepolep3;p3.setAge(30);上面這個編譯報錯,為什么?setAge方法產生的this指針是普通對象指針,而p3對象是常對象,產生的指針常指針 const people *pp; 不可以將一個常指針賦值給一個普通對象指針.
【<五>關于類的各類成員】

    推薦閱讀