const對象
- const關鍵字能夠修飾對象
- const修飾的對象為只讀對象
- 只讀對象的成員變量不允許被改變
- 只讀對象是編譯階段的概念,運行時無效
- C++中的const成員函數
- const對象只能調用const的成員函數
- const成員函數中只能調用const成員函數
- const成員函數中不能直接改寫成員變量的值
- const成員函數的定義:
- Type ClassName::function(Type p) const
- 類中的函數聲明與實際函數定義中都必須帶const關鍵字
#include <stdio.h>
class Test
{
int mi;
int mn;
public:
int mj;
Test(int i);
Test(const Test& t);
int getMi();
int Test::getMn()const;
};
Test::Test(int i)
{
mi = i;
mn = i;
}
Test::Test(const Test& t)
{
}
int Test::getMi()
{
return mi;
}
int Test::getMn()const
{
//這里會報錯。因為不可以修改成員變量
mn = 2;
return mn;
}
int main()
{
//定義只讀對象
const Test t(1);
//這里肯定報錯,因為是只讀對象
t.mj = 0;
//這里也會報錯,因為const對象只能調用const成員函數
printf("t.getMi() = %d", t.getMi());
//這里不會報錯,因為const對象可以調用const成員函數
printf("t.getMi() = %d", t.getMn());
return 0;
}
類成員
- 從面向對象的角度
- 從程序運行的角度
- 對象由數據和函數構成
- 數據可以位于棧、堆和全局數據區
- 函數只能位于代碼段
- 結論
- 每一個對象擁有自己獨立的屬性(成員變量)
- 所有的對象共享類的方法(成員函數)
- 方法能夠直接訪問對象的屬性
- 方法中的隱藏參數 this 用于指代當前對象
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。