重载

来源:互联网 发布:上海淘宝摄影工作室 编辑:程序博客网 时间:2024/04/29 13:25

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

 

对运算符重载的限制:

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

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

        .      .*      ::     ?:

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

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

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

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

   

重载参数问题:

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

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

 

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

 

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

    

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

 

重载运算符的规则:

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

      = -> ()  []

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

    >>     <<

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

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

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

原创粉丝点击