C++ 函数返回值作为引用并返回 *this

标签 c++

如果我想从类成员函数返回“this”作为引用,这段代码是否正确?

Record& operator=(const Record& that) {
    m_name = that.m_name;
    return *this;
}

我不应该只使用“返回这个”吗?

感谢您的帮助:)

最佳答案

是的,没错。

Return this 将不起作用,因为 this 是一个指针。 (它是指针而不是引用的原因是因为直到课后才将引用引入语言。)

在这种特定情况下,如果您只是打算分配成员,那么您不应该编写复制赋值运算符;默认会做同样的事情。当您管理某些资源(并调用 Rule of Three )时,您会想要使用 copy-and-swap idiom .

关于C++ 函数返回值作为引用并返回 *this,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3754432/

相关文章:

c++ - undefined reference 错误的含义

C++ OpenSSL Ripemd-160 给出了错误的输出

c++ - 在 netbeans 中运行 makefile 时找不到 sdl2-config 可执行文件

c++ - C/C++ 结构体中的指针

c++ std::stack 内容在离开函数时不会释放

C++ 将指定的 vector 内容复制到另一个 vector

c++ - 如何使用辅助函数在 C++ 中编译以下 flex 文件

c++ - Arduino 串口解析

C++ 字符转换

c++ - 有一个 PCWSTR 并需要它成为一个 WCHAR[]