zoukankan      html  css  js  c++  java
  • 多继承问题 操作符重载

    继承函数调用顺序:1.先按照继承关系调用构造函数  2.按照声明顺序调用成员函数和  3.反继承顺序调用析构函数

    1.菱形继承问题  因为父类太多 函数产生了二义性 解决方法使用虚继承 virtual      121

    2.V形状继承问题  使用类域来确定对哪个进行参数 进行赋值               21

    操作符重载:

    1.类内重载:把操作符重载为函数,当使用这个操作符时会调用这个函数

    格式:返回类型 operator 重载的操作符(形参列表)

    参数个数由操作符的操作数决定:单目运算符一般不需要参数:a++,操作this,

    双目运算符 a+b,需要1个参数:this是左操作数,这个参数为右操作数

        Student operator + (const Student &stu)const
        {
            Student temp(this->name +' '+ stu.name,this->age + stu.age);
            return temp;
        }

    2.类外重载:=操作符不能在类外重载

    参数个数由操作符的操作数决定:单目运算符一般需要一个参数:a++ 第一个参数调用操作符重载函数

    双目运算符 a+b 需要2个参数  第一个参数为左操作数,第二个参数是有操作数

    重载要注意的问题:

    1.不能改变操作符的本义

    2.不要改变操作符的返回值

    3.下面操作符不能重载:     :: ->  .  ->*  .* ? :

  • 相关阅读:
    【阿里的感悟】质量该如何做? .(转载)
    java linux 配置环境
    Spring Bean属性绑定Bean返回值
    Spring BeanNameAutoProxyCreator 与 ProxyFactoryBean
    Spring Aop之(二)Aop 切面声明和通知
    Ubuntu开机自动启动Script
    转战博客园!
    linux 系统管理11 ——系统安全及应用
    linux awk
    Rsync数据同步工具
  • 原文地址:https://www.cnblogs.com/xiaozoui11cl/p/12768569.html
Copyright © 2011-2022 走看看