zoukankan      html  css  js  c++  java
  • 04继承

    1)继承语法

      减少重复代码

      语法: class 子类 :继承方式  父类

            派生类              基类

            个性     共性

    2)继承方式

        父类中---1)私有内容--子类哪种继承方式都不能访问

      1)公共---在父类中公共和保护内容访问权限,照搬到子类中

      2)保护---在父类中公共和保护内容,在子类中都变为保护内容

      3)私有---在父类中公共和保护内容,在子类中都变为私有内容

    3)继承中的对象模型

      1)从父类继承过来的成员,哪些属于子类对象中?

        ---父类中所有非静态成员属性都会被子类继承下去

        ---父类中私有成员属性,是被编译器给隐藏了,因此是访问不到但的确被继承了

      2)小工具--打开visual studio的开发人员命令提示工具---查看对象模型

          1)转到项目所在文件夹目录

          2)cl /d1 reportSingleClassLayout类名  cpp文件名-------(报告单个类的布局)

          

    4)继承中的构造和析构顺序

        问题:父类和子类的构造和析构顺序先后如何?

            --先构造父类,再构造子类

            --先析构子类,再析构父类

        

    5)继承中同名成员处理方式

        1)访问子类同名成员  ---  直接访问即可

        2)访问父类同名成员  ---  需要加入作用域----子类对象. 父类::同名成员

          ----子类中同名成员函数会隐藏父类中所有的同名成员函数----加作用域才能调用父类成员函数

    6)继承中静态成员处理方式

        静态成员和非静态成员出现同名,处理方式与5)一致----两种方法

        通过子类对象访问---s.m_A

                ---s.Base::m_A

        通过子类类名访问---Son::m_A

                ---Son::Base::m_A-----第一个::是通过类名方式访问,第二个::是访问父类作用域下的

    7)多继承语法

        语法: class 子类 : 继承方式 父类1, 继承方式 父类2.....

        c++开发中不推荐多继承---两个父类中可能有重名成员,访问时需要加作用域区分-----python中有继承顺序

    8)菱形继承

        概念:两个派生类继承同一个基类,又有某个类同时继承两个派生类的情况,又叫钻石继承

        利用虚继承解决菱形继承问题

          在继承之前加关键字virtual 变为虚继承

          

          vbptr----虚基类指针

              v---virtual

              b---base

              ptr---pointer

            ----继承的不是数据是指针,通过指针偏移量找到唯一的数据

        

  • 相关阅读:
    操作系统:DOS
    袁氏-人物:袁淑
    移植linux-2.6.32.2到qq2440
    qq2440启动linux后出现错误提示request_module: runaway loop modprobe binfmt-464c
    qq2440启动linux后插入u盘出现usb 1-1: device descriptor read/64, error -110,usb 1-1: device not accepting address 8, error -110
    ubuntu14.04 64bit安装teamviewer
    vi 的使用
    添加了环境变量,然而交叉编译器还是无法运行的解决方案
    linux下route命令使用实战
    ubuntu14.04纯命令行下连接有线网和无线网
  • 原文地址:https://www.cnblogs.com/MissZhang-154/p/13235635.html
Copyright © 2011-2022 走看看