zoukankan      html  css  js  c++  java
  • 对于C++中const & T operator= 的一点思考

    一个正常的assignment操作符的声明是这样的。

    const elmentType & elmentType::operator=(const elmentType &rhs)

    这两个const应该作何理解呢?后面的const很好理解,作为引用对象,要防止对原有对象进行破坏。

    那么后面一个呢?

    事实上,对于一个assignment操作来说,

    比如 

    a = b;

    来说,a所取得的并不是调用operator=的返回值,而是通过成员函数调用operator=直接对a操作实现的。

    那么这个返回值的意义是什么?

    事实上这个返回值是为下面这种情况准备的。

    a = b =  c = d;

    在这种情况下,赋值操作符向右结合,实际的操作是

    a = (b = (c = d))

    operator=的返回值是为了在连续赋值时充当左值使用,这样的话,自然要防止自己的值被更改,因为需要声明const加以保护。

    以上是个人理解,如果有问题,欢迎指正。

  • 相关阅读:
    二 Capacity Scheduler 计算能力调度器
    一:yarn 介绍
    2.hbase原理(未完待续)
    1.安装hbase
    创建第一个vue项目
    初学vue(二)
    第一次面试
    面试题
    C#冒泡排序
    面试真题(.NET/Sqlserver/web前端)
  • 原文地址:https://www.cnblogs.com/kururu/p/3574323.html
Copyright © 2011-2022 走看看