什么是函数的参考限定符?

Hec*_*tor 3 c++ c++11

根据该网页,非静态成员函数可以具有尾随&或其&&声明.他们有以下例子

struct S {
    virtual int f(char) const, g(int) &&; // declares two non-static member functions
    };
Run Code Online (Sandbox Code Playgroud)

1)第二个功能的签名是否包括virtual

virtual int g(int) &&
Run Code Online (Sandbox Code Playgroud)

2)尾随的含义是&&什么?

Yak*_*ont 6

struct S {
  virtual int f(char) const, g(int) &&;
};

struct D : S {
  virtual int f(char) const override;
  virtual int g(int) && override;
};
Run Code Online (Sandbox Code Playgroud)

上面的代码在g ++和clang中编译.这表明,在实践中至少,这gvirtualS.

请参阅什么是"*这个的右值参考"?为了你的其他问题.

  • 在那里很好地使用`override`!我打算通过测试一个指向基的指针是否会调用正确的 `g` 来确认,但这要好得多! (2认同)