const 修饰函数的问题
void func(){}const 是只被这样的对象调用么 class F{} const F a;
[解决办法]
class A
{
public:
void fun(){}
void fun_const() const{}
void fun_volatile() volatile{}
void fun_const_volatile() const volatile{}
};
int main()
{
A a;//可以对a调用一切可见的成员函数
a.fun();//OK;
a.fun_const();//OK;
a.fun_volatile();//OK;
a.fun_const_volatile();//OK;
A const ca;//只能调用ca的const成员函数
ca.fun();//错误!不能调用non-const成员函数
ca.fun_const();//OK;
ca.fun_volatile();//错误!不能调用non-const成员函数
ca.fun_const_volatile();//OK;
A volatile va;//只能调用va的volatile成员函数
va.fun();//错误!不能调用non-volatile成员函数
va.fun_const();//错误!不能调用non-volatile成员函数
va.fun_volatile();//OK;
va.fun_const_volatile();//OK;
A const volatile cva;//只能调用cva的const volitale 成员函数
cva.fun();//错误!不能调用non-volatile、non_const成员函数
cva.fun_const();//错误!不能调用non-volatile成员函数
cva.fun_volatile();//错误!不能调用non-const成员函数
cva.fun_const_volatile();//OK;
return 0;
}