为了账号安全,请及时绑定邮箱和手机立即绑定
  • C++中派生类对象可以赋值给基类,子类对象可以赋值给父类;

    反之不可以。

    用父类指针去指向子类对象也只能使用父类拥有的数据成员和成员函数

    查看全部
    0 采集 收起 来源:[C++]isA

    2020-09-13

  • C++中父类和子类用法相同时,只能进行隐藏不能进行重载。

    查看全部
  • C++中的覆盖和隐藏

    隐藏:

    访问父类同名函数的方法:

    http://img1.sycdn.imooc.com//5f5d809600013dda08860440.jpg


    查看全部
    0 采集 收起 来源:[C++]隐藏

    2020-09-13

  • C++中protected继承:

    继承到protected访问限定符下:

    http://img1.sycdn.imooc.com//5f5d772a000196f410740247.jpg

    private私有继承:
    http://img1.sycdn.imooc.com//5f5d7747000125d110470258.jpg

    查看全部
  • C++中public继承中:

    http://img1.sycdn.imooc.com//5f5d756b0001307610480260.jpg


    查看全部
    0 采集 收起 来源:[C++]公有继承

    2020-09-13

  • C++中继承的代码书写方法:

    http://img1.sycdn.imooc.com//5f5b59f700011ad503790195.jpg

    先调用父类构造函数在调用子类构造函数、先调用子类析构函数、在调用父类析构函数

    查看全部
    0 采集 收起 来源:代码演示

    2020-09-13

  •  虚基类是用关键字virtual声明继承的父类,即便该基类在多条链路上被一个子类继承,但是该子类中只包含一个该虚基类的备份,虚基类主要用来解决继承中的二义性问题,这就是是虚基类的作用所在。

    视频里描述有误,这里应该Person是虚基类。

    查看全部
  • 菱形继承时,顶层基类会创建两个对象,产生两份成员数据,这是我们不想要的;虚继承可以解决该问题,这种情况下,顶层基类不会从子类中获取数据而使用自己的默认参数。

    查看全部
  • 如果父类 子类定义了同一个函数或属性,则子类对象只能直接访问子类的函数和属性,这叫做隐藏。 但是上述情况下,子类对象可以通过间接方式访问父类函数和属性。
    查看全部
    0 采集 收起 来源:[C++]隐藏

    2020-05-29

  • 非virtual场景: 如果将子类对象复制给父类对象,则子类属性会覆盖父类属性,但是父类对象只能访问父类函数,而不能访问子类函数。

    查看全部
  • 重定义:B继承A,C继承A,定义B,C类的时候就重复定义了A,此时需要解决重定义的问题

    #ifndef PERSON_H              //#ifndef意思是如果没有定义
    #define PERSON_H
    ……
    #endif


    查看全部
  • 1Person *p=new Soldier;//用Person的指针指向堆中 soldier的对象

    p->play();

    delete p;

    p=NULL;

    发现这个时候析构函数调用的时候只调用了父类的析构函数,并没有调用子类的析构函数,所以这会产生内存的泄露,如果想释放这段内存,要在父类和子类的析构函数前面都加上virtua

    2  Soldier soldier;在栈中实例化对象会执行父类的析构函数。

    查看全部
  • 使用虚继承时不会重复调用最顶层父类的构造函数和析构函数,顶层父类只能使用顶层父类构造函数的默认值,而无法从子类的子类中获得传入的参数

    查看全部
  • 重定义:B继承A,C继承A,定义B,C类的时候就重复定义了A,此时需要解决重定义的问题

    #ifndef PERSON_H              //#ifndef意思是如果没有定义
    #define PERSON_H
    ……
    #endif

    查看全部
  • Person *p=new Soldier;//用Person的指针指向堆中 soldier的对象

    p->play();

    delete p;

    p=NULL;

    发现这个时候析构函数调用的时候只调用了父类的析构函数,并没有调用子类的析构函数,所以这会产生内存的泄露,如果想释放这段内存,要在父类和子类的析构函数前面都加上virtua


    查看全部

举报

0/150
提交
取消
课程须知
本课程是C++初级课程 熟练掌握C++语言基础语法,如需要学习C++基础语法的可以看《C++远征之起航篇》、《C++远征之离港篇》、《C++远征之封装篇(上)》、《C++远征之封装篇(下)》
老师告诉你能学到什么?
1、什么是继承 2、基类和派生类的概念 3、继承的三种方式 4、多重继承和多继承 5、虚继承是怎么回事

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!