为了账号安全,请及时绑定邮箱和手机立即绑定
  • 强化知识
    查看全部
  • 强化知识
    查看全部
  • 强化知识点
    查看全部
    0 采集 收起 来源:[C++]公有继承

    2017-02-16

  • 多重继承的实例(如果不声明是public,则系统默认为private)
    查看全部
  • 多继承实例
    查看全部
  • 什么时候需要使用虚的析构函数? 当存在继承关系的时候,使用父类指针指向子类对象,同时使用父类指针去释放这块内存,这是就需要虚析构函数。
    查看全部
  • 在继承关系中,父类的对象不可以调用子类的特有的成员及函数,当用父类的指针指向子类堆中的对象 Person *p = new Soldier;并且想要销毁这片子类的内存时,直接delete p并不能销毁子类对象的内存,因而造成内存泄漏,通过将父类的析构函数写成虚析构函数,可以实现在销毁父类对象的同时,销毁子类对象内存
    查看全部
  • 对于菱形继承的情况,子类D会继承两份基类A的内容,为了避免这种信息的冗余,可以将B与D设置成虚基类。
    查看全部
  • 多继承的时候,实例化子类对象,先调用基类的构造函数,在调用子类的构造函数,调用基类的构造函数顺序按照初始化列表的顺序执行,销毁对象时,则调用析构函数,调用顺序按照生成的逆序实行
    查看全部
    0 采集 收起 来源:[C++]多继承

    2017-02-15

  • 多重继承,3个类即以上,A是B的父类,B是C的父类; 多继承,3个类即以上,一个类同时继承了多个类; 若未指明继承方式,则系统默认为private私有继承。
    查看全部
  • 对于全局函数以基类对象作为形参,void test(person p),基类和派生类的对象都值传递给函数形参person/sodier s; test(s),调用形参的时候,产生临时对象p,将调用基类的拷贝构造函数,再通过临时对象p来调用play()函数,test()函数结束时,将调用析构函数将其销毁。 对于调用以引用或者基类对象的指针作为参数的函数,并不会调用构造函数,不产生临时对象,效率更高。
    查看全部
  • 在进行虚继承时,作为菱形继承最顶层的父类并不能进行参数的传递,也就是说参数只使用了顶层父类的默认参数而无法从子类当中获得传入的参数。 虚继承的好处是使底层的类实例化的对象当中只有一份顶层类的数据。
    查看全部
  • 重定义:一个基类被两个子类继承 宏定义:(头部)#ifndef +大写的文件名如PERSON_H #define +大写的文件名如PERSON_H (尾部)#endif
    查看全部
  • 当基类指针指向派生类的时候,如果析构函数不声明为虚函数,在析构的时候,不会调用派生类的析构函数,从而导致内存泄露。 void test1(Person p){p.play}调用test1的时候,因为在test1中所定义的参数是一个对象P,所以传值的时候会先实例化临时对象P,通过临时对象P调用play这个函数,在test1执行完毕之后,p这个临时对象就会被销毁 如果函数的参数是基类的对象,那么基类的对象和派生类的对象,都可以作为实参传递进去,并且可以正常使用。 void test2(Person &p) 没有实例化临时对象,使用基类的引用也可以接收基类的对象以及派生类的对象 void test3(Person *p)的调用结果和void test2(Person &p)一样
    查看全部
  • 虚析构函数的用法:当存在继承关系时后我们使用父类的指针去指向堆中子类的对象,并且我们还想使用父类的指针去释放这块内存这个时候我们就需要虚析构函数。运用关键字virtual.这个关键字是可以被继承下去的,也就是说它的子类也会继承这个关键字即子类不用写关键字virtual也能成为虚析构函数。
    查看全部

举报

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

微信扫码,参与3人拼团

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

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