假设我们具有两个定义如下的成员函数的成员类:
class SomeClass
{
private:
int val = {};
public:
const int getVarLRef() & {
return val;
}
const int getVarCLRef() const& {
return val;
}
};
int main()
{
auto var1 = SomeClass().getVarCLRef();
auto var2 = SomeClass().getVarLRef();
return 0;
}
我不太了解const&
和&
有什么区别。如果我们将此功能指定为getVarCLRef
,为什么它可以与const&
一起使用?不应该只用左值调用它吗?
[getVarLRef
,另一方面,工作正常,在这种情况下无法按预期进行编译。]]
我使用C ++ 11和gcc 7.3.0
假设我们有两个定义为以下成员函数的成员类:class SomeClass {private:int val = {};公开:const int getVarLRef()&{return val; } const int ...
不应该只允许使用左值调用吗?