首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

const 修饰函数的有关问题

2013-07-09 
const 修饰函数的问题void func(){}const是只被这样的对象调用么 class F{}const F a;[解决办法]class A{p

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;
}

热点排行