关于网友提出的“ const 修饰函数的问题”问题疑问,本网通过在网上对“ const 修饰函数的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: const 修饰函数的问题
描述: void func(){}const 是只被这样的对象调用么 class F{} const F a;
解决方案1: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;
}
以上介绍了“ const 修饰函数的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3709368.html