我有一个简单的问题,但找不到答案: 该标准在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版本。我认为它会选择const版本,因为没有做任何修改。