【C++】成员函数后加&的作用

成员函数后加&的作用

#include <iostream>
#include <utility>

struct Arg
{
    int i = 1;

    int aget() &&
    {
        std::cout << "in aget &&\n";
        return i;
    }

    int& aget() &
    {
        std::cout << "in aget &\n";
        return i;
    }
};

int main(int argc, const char* argv[])
{
    Arg g1{ 5 };
    g1.aget();              // 调用 lvalue 版本
    std::move(g1).aget();   // 调用 rvalue 版本
    return 0;
}

 

输出:

g++ -std=c++17 test.cpp -O2 -Wall -Wextra
in aget &
in aget &&

参考资料

1. C++成员函数后加&的作用是什么?

posted @ 2025-04-27 09:12  苏格拉底的落泪  阅读(30)  评论(0)    收藏  举报