Const and reference member function qualifiers

问题描述 投票:2回答:1

假设我们具有两个定义如下的成员函数的成员类:

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 ...

c++ reference const lvalue
1个回答
2
投票

不应该只允许使用左值调用吗?

© www.soinside.com 2019 - 2024. All rights reserved.