首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  C++

C++里, operator=的返回值为什么不是 const& ?

  •  
  •   xmyjd · 53 天前 · 1408 次点击
    这是一个创建于 53 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这样不能通过编译。 const T& operator(const T& t);

    必须这样才行 T& operator(const T& t);

    难道会有这样的操作吗: T a,b,c; (a=b)=c;

    7 回复  |  直到 2019-10-17 15:51:39 +08:00
        1
    mooyo   53 天前
    T d = (a = b);
    d = c;
        2
    across   53 天前   ♥ 1
    大声告诉我, = 的意义是什么,const 的意义又是什么?
        3
    wutiantong   53 天前
    会有。
    运算符重载的函数声明都是有规范的,不要自己想当然。
        4
    koebehshian   53 天前
    赋值运算符,左边的操作数,必须是的左值 https://en.cppreference.com/w/cpp/language/rule_of_three
        5
    zjsxwc   53 天前
    既想赋值修改,又想 const 不得修改,你到底是想修改还是不想修改?
        6
    shfanzie   53 天前
    2 楼 已结贴
        7
    ipwx   53 天前 via Android
    T& t = (a = b); t = c;
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1015 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 19:06 · PVG 03:06 · LAX 11:06 · JFK 14:06
    ♥ Do have faith in what you're doing.