阅读此页面时我感到困惑
struct S
{
virtual int f(char) const, g(int) &&; // declares two non-static member functions
virtual int f(char), x; // compile-time error: virtual (in decl-specifier-seq)
// is only allowed in declarations of non-static
// member functions
};
是什么
virtual int g(int) &&;
是什么意思?
&&
在函数末尾表示该函数在this
具有 r-value 值类别时被选择。
查看成员函数:
非静态成员函数可以声明为没有引用限定符、左值引用限定符(参数列表之后的标记 &)或右值引用限定符(参数列表之后的标记 &&)。在重载决议期间,类 X 的非静态 cv 限定成员函数被处理如下:
无引用限定符:隐式对象参数具有对 cv 限定的 X 的左值引用类型,并且还允许绑定右值隐式对象参数
左值引用限定符:隐式对象参数具有对 cv 限定的 X 的左值引用类型
右值引用限定符:隐式对象参数具有对 cv 限定的 X 的右值引用类型
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句