首页 > 解决方案 > 常量和非常量访问器,将被调用

问题描述

我有一个简单的问题,但找不到答案:标准在 const 和非 const 函数之间进行选择的规则是什么。

这是一个例子

#include <iostream>
class B{
int a;

public:

B(int _a) : a(_a){}

const int& getA() const{
    std::cout << "CONST\n";
    return a;
}

int& getA(){
    std::cout << "NON CONST\n";
    return a;
}

};

int main(){

B b(3);

b.getA(); //print non const
int a = 3 + b.getA(); //same
};

两个示例都使用非常量版本。我认为它会选择 const 版本,因为没有进行任何修改。

标签: c++

解决方案


推荐阅读