C++ 类中的const成员函数

一、问题描述

看下面这个类

class A
{
public:
    void show();
private:
    int i;
}

如果我们像下面这么使用是会出错的

const A a;  //将对象定义为const常量
a.show();   //出错!

二、出错原因

我们将对象声明为const,说明对象的属性是不能更改的。而调用的show()方法不能保证对象的属性不会被更改。

三、解决办法

我们应该在声明中将方法函数使用const修饰,以此来提示编译器该方法不会修改对象的任何属性。

如下:

class A
{
public:
    void show() const;  // const修饰,承诺该方法不会修改对象的属性
private:
    int i;
}



打赏作者

发表评论

电子邮件地址不会被公开。 必填项已用*标注