为了账号安全,请及时绑定邮箱和手机立即绑定
  • 在异常处理时,我们可以通过定义一个接口类,然后定义不同异常继承这个类,通过不同异常处理不同的方法,就可以把处理异常和多态结合

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

    2018-10-15

  • 常见的异常

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

    2018-10-15

  • catch获取try中的异常,并做处理,不识别的异常可以用。。。统一处理

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

    2018-10-15

  • throw try catch的用法

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

    2018-10-15


  • #include <iostream>

    #include <stdlib.h>

    #include <string>

    #include<typeinfo> //别忘了加上库

    using namespace std;


    /**

     * 定义移动类:Movable

     * 纯虚函数:move

     */

    class Movable

    {

    public:

        virtual void move()=0;

    };


    /**

     * 定义公交车类:Bus

     * 公有继承移动类

     * 特有方法carry

     */

    class Bus : public Movable

    {

    public:

        virtual void move()

        {

            cout << "Bus -- move" << endl;

        }

        

        virtual void carry()

        {

            cout << "Bus -- carry" << endl;

        }

    };


    /**

     * 定义坦克类:Tank

     * 公有继承移动类

     * 特有方法fire

     */

    class Tank :public Movable

    {

    public:

        virtual void move()

        {

            cout << "Tank -- move" << endl;

        }


        virtual void fire()

        {

            cout << "Tank -- fire" << endl;

        }

    };


    /**

     * 定义函数doSomething含参数

     * 使用dynamic_cast转换类型

     */

    void doSomething(Movable *obj)

    {

        obj->move();


        if(typeid(*obj)==typeid(Bus))

        {

           Bus *bus=dynamic_cast<Bus *>(obj);

            bus->carry();

        }


        if(typeid(*obj)==typeid(Tank))

        {

            Tank *tank=dynamic_cast<Tank *>(obj);

            tank->fire();

        }

    }


    int main(void)

    {

        Bus b;

        Tank t;

        doSomething(&b);

        doSomething(&t);

        return 0;

    }


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

    2018-10-05

  • 每一类最多只有一个虚函数表公用,子类中有与父类中虚函数同名的函数,则子类的虚函数表中的对应项会覆盖掉从父类继承的那一项

    查看全部
  • dynamic_cast只能转换含有虚函数的类的指针大概

    查看全部
  • 理论前提:
    执行完子类的析构函数系统就自动会执行父类的析构函数

    查看全部
  • 覆盖:

    子类定义了与父类同名的虚函数

    子类的虚函数表中子类的虚函数地址会覆盖掉父类的虚函数地址

    查看全部
  • 多态具体到语法中是指,使用父类指针指向子类对象,并可以通过该指针调用子类的方法; 产生多态的基础是继承关系,没有继承就没有多态; 多态的语法核心是virtual关键字,必须使用virtual才能使多个类间建立多态关系; 封装、继承、多态是面向对象的三大特征。

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

    2018-10-05

  • typeid的注意事项

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

    2018-10-04

  • typeid返回的事一个type_info类型,这个类可用函数如下

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

    2018-10-04

  • typeid(类):判断类的类型

    typeid(类),name(); 类的名称

    dynamic_cast<目标类型指针或引用>(原类型):吧原类型转化为目标类型

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

    2018-10-04

  • RTTI就是对继承同一父类的不同子类在运行时调用同名的父类函数时,判断子类类别并进行相应的动作的判断

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

    2018-10-04

  •     RTTI ;运行时状态识别

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

    2018-10-04

举报

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

微信扫码,参与3人拼团

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

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