C ++中成员函数的const&,&和&&&说明符

约翰·扎克

最近,我正在阅读的API,boost::optional发现其中的内容:

T const& operator *() const& ;
T&       operator *() & ;
T&&      operator *() && ;

我还编写了自己的程序,该程序将成员函数定义为const&,&和&&(请注意,我并不是在讲返回类型,而是在分号之前的说明符),并且它们似乎可以正常工作。

我知道声明成员函数const的含义,但是谁能解释声明const&,&和&&的含义。

永远

const& 意味着,此重载将仅用于const,non-const和lvalue对象。

const A a = A();
*a;

& 意味着,此重载将仅用于非const对象。

A a;
*a;

&& 意味着,此重载将仅用于右值对象。

*A();

有关C ++ 11标准此功能的更多信息,您可以阅读这篇文章什么是“ * this的右值参考”?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

可以使用C ++中的“重写和最终”说明符声明类的相同成员函数吗?

来自分类Dev

声明C ++中的冲突说明符

来自分类Dev

C stdlib函数中的抽象格式说明符(例如,printf,scanf)

来自分类Dev

C语言中strftime()函数中的奇怪格式说明符

来自分类Dev

C ++中全局数组初始化时的语法和缺少类型说明符错误

来自分类Dev

C ++虚函数忽略范围说明符

来自分类Dev

C ++虚函数忽略范围说明符

来自分类Dev

C什么是函数说明符?就像_inline _NORETURN

来自分类Dev

访问基础子对象和虚拟说明符C ++

来自分类Dev

C ++模板-指针中的预期类型说明符

来自分类Dev

C ++中忽略了挥发性说明符

来自分类Dev

在C ++中定义Unicode时的映射格式说明符?

来自分类Dev

了解C#中的类的访问说明符

来自分类Dev

字段说明符如何在C中工作

来自分类Dev

%di说明符在C编程中做什么?

来自分类Dev

在 C++ 中得到预期的类型说明符错误

来自分类Dev

在 C++ 中的错误之前无效使用不完整的类型和预期的类型说明符

来自分类Dev

C ++错误:预期类型说明符

来自分类Dev

C printf格式说明符%_fi

来自分类Dev

C ++错误:预期的类型说明符

来自分类Dev

C ++错误:预期类型说明符

来自分类Dev

C ++ / ENUM /类型名称/说明符

来自分类Dev

复杂格式说明符C

来自分类Dev

Objective-C“覆盖”说明符

来自分类Dev

C:动态格式说明符

来自分类Dev

const成员函数和typedef,C ++

来自分类Dev

为什么虚拟函数会违反访问说明符?C ++

来自分类Dev

在回调中使用函数时 C++ 未知覆盖说明符

来自分类Dev

C ++省略了`noexcept`说明符和`noexcept(false)`,它们的确切含义是什么?

Related 相关文章

热门标签

归档