为了账号安全,请及时绑定邮箱和手机立即绑定
  • 重载、覆盖、隐藏的区别

    一、重载(overload)

    指函数名相同,但是它的参数表列个数或顺序,类型不同。但是不能靠返回类型来判断。
    (1)相同的范围(在同一个作用域中) ;
    (2)函数名字相同;
    (3)参数不同;
    (4)virtual 关键字可有可无。
    (5)返回值可以不同;

    二、重写(也称为覆盖 override)
    是指派生类重新定义基类的虚函数,特征是:
    (1)不在同一个作用域(分别位于派生类与基类) ;
    (2)函数名字相同;
    (3)参数相同;
    (4)基类函数必须有 virtual 关键字,不能有 static 。
    (5)返回值相同(或是协变),否则报错;<—-协变这个概念我也是第一次才知道…

    (6)重写函数的访问修饰符可以不同。尽管 virtual 是 private 的,派生类中重写改写为 public,protected 也是可以的

    三、重定义(也成隐藏)
    (1)不在同一个作用域(分别位于派生类与基类) ;
    (2)函数名字相同;
    (3)返回值可以不同;
    (4)参数不同。此时,不论有无 virtual 关键字,基类的函数将被隐藏(注意别与重载以及覆盖混淆) 。
    (5)参数相同,但是基类函数没有 virtual关键字。此时,基类的函数被隐藏(注意别与覆盖混淆) 


    查看全部
    0 采集 收起 来源:巩固练习

    2020-10-27

  • 111111111

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

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


    查看全部
    0 采集 收起 来源:[C++]异常处理

    2020-10-09

  • 异常处理捕获

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

    查看全部
    0 采集 收起 来源:[C++]异常处理

    2020-10-09

  • dynamic_cast  注意;

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

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

    2020-10-09

  • cxhsd 

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

    查看全部
  • 通过父类实例化子类

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

    查看全部
    0 采集 收起 来源:巩固练习

    2020-10-08

  • 老师这点讲错了,delete父类指针,先执行的是子类的析构函数,后执行父类析构函数

    查看全部

  • http://img1.sycdn.imooc.com//5f7d03220001838d10030553.jpg



    虚析构函数

    查看全部
  • 捕获异常代码:

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

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

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



    查看全部
  • C++的异常处理:

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

    网线未插入or内存不足 等等

    try...catch...//尝试,抓住

    throw//抛出

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

    抛出的内容复杂时:

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

    常见异常:1、数组下标越界;2、除数为零;3、内存不足

    系统常见异常:

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

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




    查看全部
    0 采集 收起 来源:[C++]异常处理

    2020-09-13

  • RTTI:运行时类型识别

    可分为,typeid和dynamic——cast

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


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

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


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

    2020-09-13

  • C++中如果抽象类中仅含有纯虚函数而不含有其他任何东西,则称该类为接口类。

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

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

    2020-09-13

  • C++纯虚函数的写法:

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

    包含纯虚函数的类叫做抽象类:

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


    查看全部
  • C++中virtual修饰符不能随便使用,

    他必须是某一类的成员函数,或者元素

    1、不能时普通的函数,

    2、不能修饰静态的成员函数;

    3、不能修饰内联inline函数;//如果使用编译器会忽视inline,把函数当作纯错的虚函数

    4、不能修饰构造函数;

    查看全部
  • C++中多态定义:

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

    早绑定,静态多态,在编译前程序便知道使用哪种函数,(函数重载)

    晚绑定,动态多态,定义虚函数,知道程序需要使用哪个函数。

    查看全部
    1 采集 收起 来源:[C++]虚函数

    2020-09-13

举报

0/150
提交
取消
课程须知
本课程是C++初级课程 1、熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、虚函数、虚析构函数、纯虚函数 2、抽象类和接口类 3、运行时类别异常 4、异常处理

微信扫码,参与3人拼团

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

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