【问题标题】:Why does copy assignment operator return *this?为什么复制赋值运算符返回 *this?
【发布时间】:2018-11-04 16:09:22
【问题描述】:

复制赋值运算符应该让 LHS 等于 RHS。

为什么会返回 *this?

【问题讨论】:

    标签: c++


    【解决方案1】:

    这支持链式赋值:

    a = b = c = 0;
    

    这会将 0 分配给 a、b 和 c。

    返回一个(非 const)引用而不是一个值支持以下内容:

    (a = b) = 0;
    

    这也是允许的,虽然不是很常见。

    【讨论】:

    • 哦,这很有道理。
    • 在忽略返回值的非常常见的情况下,引用返回类型避免复制可能更重要。
    • 或直接检查赋值的值:if( (f = fopen(...)) ){...}.
    猜你喜欢
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 2023-03-07
    • 2012-08-23
    相关资源
    最近更新 更多