gpt4 book ai didi

c++ - C++ 中成员函数的 const& 、 & 和 && 说明符

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:22 26 4
gpt4 key购买 nike

最近我正在阅读 API of boost::optional并遇到了这些问题:

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

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

我知道将成员函数声明为 const 意味着什么,但谁能解释将其声明为 const&、& 和 && 意味着什么。

最佳答案

const& 表示此重载将仅用于 const、非常量和左值对象。

const A a = A();
*a;

& 表示,此重载将仅用于非常量对象。

A a;
*a;

&& 表示,此重载将仅用于右值对象。

*A();

有关 C++11 标准的此功能的更多信息,您可以阅读这篇文章 What is "rvalue reference for *this"?

关于c++ - C++ 中成员函数的 const& 、 & 和 && 说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39852512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com