• C++——overloading


    参考 C++——overloading principle analysis

    operator overloading

    C语言中,对一个东西进行操作一定要涉及到一个函数,对于自定义类型,为了实现其四则运算你必须给出相应函数,而不能简单使用+=*/等operator。C++考虑到书写习惯,允许对operator进行overloading。事实上,C++中operator就是一种函数,允许你重新定义。operator overloading可以有如下形式

    member function

    operator会做用到左边object身上,看左边oobject有没有对这个operator做定义。所有的Non-static member function都隐藏包含一个this pointer,用于表明谁发起的这个function call。上图显示this放在了parameters list最左边,现实情况可能不是这样,到底是放在最左边还是最右边还是放在中间什么位置,是由compiler自己决定。但是无论怎样,与programmer都无关,不影响coding。

    Non-member function

    friend function

    参考:C++——friend

    overloading写在哪里影响不大,主要是策略问题。还是不推荐friend的做法。

    global function

    参考:C++——friend

    overloading写在哪里影响不大,主要是策略问题。

    static function 

    overloading写在哪里影响不大,主要是策略问题。

    这里面使用static其目的是想把overloading封锁在单个文件内部,这种情况几乎碰不到。

    极少数不允许overloading的operator

  • 相关阅读:
    第二阶段站立会议第三天
    第二阶段站立会议第二天
    第二阶段站立会议第一天
    测试计划
    cnblogs用户体验及建议
    第一阶段绩效评估
    第一阶段各组意见回复
    第一阶段团队评价
    站立会议第十天
    站立会议第九天
  • 原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9444079.html
Copyright © 2020-2023  润新知