重载

函数重载是指在相同作用域内,若干个参数特征不同的函数使用相同的函数名;运算符重载是指同样的运算符可以施加不同类型的操作数上面。

 

对运算符重载的限制:

    (1) 只能重载C++原先已有定义的运算符。

     (2)不能重载下列4个运算符:

        .      .*      ::     ?:

     (3)不能改变运算符操作个数。

      (4)不能改变运算符原有的优先级。

      (5)不能改变运算符原有的结合特性。

       (6)不能改变运算符对预定义类型数据的操作方式。

   

重载参数问题:

     (1)重载一元运算符时,参数表为空。

      (2)重载二元运算符时,参数表中有一个参数。

 

c++规定,赋值运算符=只能用成员函数重载。

 

重载赋值运算符解决指针悬挂问题

    

   C++ 规定,赋值运算符必须使用成员函数重载,而且重载赋值运算符的成员函数operator = 不能被继承。

 

重载运算符的规则:

  1.   下列4个运算符只能用成员函数重载,不能用友元函数重载:

      = -> ()  []

    2.      下列2个运算符只能用友元函数,不能用成员函数重载:

    >>     <<

    3.        如果运算符的操作符的操作需要修改当前对象的状态

(例如,运算符+=,-=,*=,/=,++,--等),则最好用成员函数重载。

   4.          如果一元运算符的操作数,或二元运算符的左操作数,有可能是预定义类型的数据,则必须能把该操作数隐式类型转换为类对象,在这种情况下,该运算符必须用友元函数重载,而不能用成员函数重载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值