1 常量
1.1 常量成員函數
格式(下面的const):
return-type functionName(param ) const{}
作用:表示該函數不會改變成員變量的值。
例如下面的例子,常量對象a隻能調用常量函數,如果調用非常量函數,就意味着可能會改變對象中成員的值,因為會報錯。
#include
class A{
public:
A(int _data = 0):m_data(_data){}
int print(){return m_data;}
int print2() const { return m_data;}
private:
int m_data;
};
int main(){
const A a(6);
// a.print(); //錯誤的用法
a.print2();
return 0;
}
1.2 常量/非常量對象和函數
類型 | const object | non-const object |
const成員函數 | true | false |
no-const成員函數 | false | true |
char operator[](size_type pos) const{}
reference operator[](size_type pos){}