特殊函數方法函數
靜態方法:this
const方法:編碼
靜態方法與const方法關係:指針
固然,若是類的成員函數不會改變對象的狀態,那麼該成員函數會被聲明爲const,但有時候須要在const函數中修改一些與類的狀態無關的數據成員,那麼該數據成員就應該被mutable修飾,如計算運算次數,運行效率等等。code
2.舉例對象
class test { public: static int getNumber(); string getString()const; int setNumber(int x); static int getAnotherNumber(test anothertest); private: static int n; string s; }; int test::n = 0; int test::getNumber() { //return this->n;//this只能用於非靜態成員函數內部 //string s1 = s;//靜態成員函數僅能訪問靜態數據成員 return n;//訪問private成員變量 } int test::setNumber(int x) { this->n = x; return this->n; } string test::getString()const { return s; } int test::getAnotherNumber(test anothertest) { return anothertest.n; } void main() { test onetest, twotest; onetest.setNumber(8); twotest.setNumber(9); cout << onetest.getAnotherNumber(twotest)<<endl;//個對象能夠經過調用靜態方法訪問另外一個同類型對象的private和protected靜態數據成員。 const test threetest; cout<<threetest.getNumber()<<"\n"; //cout << threetest.setNumber(5);//常量對象僅能調用const方法 getchar(); }