天天看點

第五講 常量—————面向對象進階開發

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){}