我可以在C ++中调用const对象的非const成员函数吗?

时间:2016-02-11 14:27:52

标签: c++

假设我有以下代码:

Class Object{
    public:
      Object(int i):_val(i) {}
      void doNotChangeObject() { /*Doesn't change 'val'*/}
    private
      int _val;
};

int main{
   const Object obj(1);
   obj.doNotChangeObject();
   return 0;
}

这段代码是否会产生编译错误,因为我正在调用const对象的非const成员函数?

1 个答案:

答案 0 :(得分:1)

<击>

<击>
  

我可以调用const对象的非成员函数

你不能在一个对象上“调用”非成员函数。但是,您可以将对象作为参数传递。

  

我可以调用const对象的非const成员函数

没有

  

这个代码是否会产生编译错误?

是。您在const对象上调用非const成员函数。