为了账号安全,请及时绑定邮箱和手机立即绑定
  • 用m_pCenter指向对象
    查看全部
  • 为了避免重复包含
    查看全部
  • 因为前面加了virtual
    查看全部
    0 采集 收起 来源:[C++]虚函数

    2017-12-04

  • 动态多态(晚绑定):不同对象的相同指令。静态多态(早绑定):函数重载。
    查看全部
    0 采集 收起 来源:[C++]虚函数

    2017-12-04

  • 这一节讲的不错
    查看全部
  • 多态具体到语法中是指,使用父类指针指向子类对象,并可以通过该指针调用子类的方法
    查看全部
    0 采集 收起 来源:练习题

    2017-11-25

  • 静态多态不就是重载吗?
    查看全部
    2 采集 收起 来源:练习题

    2017-11-24

  • #include <iostream> #include <string> #include <stdlib.h> using namespace std; /** * 定义函数division * 参数整型dividend、整型divisor */ int division(int dividend, int divisor) { if(0 == divisor) { // 抛出异常,字符串“除数不能为0” throw string("除数不能为0"); } else { return dividend / divisor; } } int main(void) { int d1 = 0; int d2 = 0; int r = 0; cin >> d1; cin >> d2; // 使用try...catch...捕获异常 try { division(d1,d2); } catch(string) { cout << "除数不能为0" << endl; } return 0; }
    查看全部
    0 采集 收起 来源:巩固练习

    2018-03-22

  • #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-03-22

  • #include <iostream> #include <stdlib.h> #include <string> using namespace std; /** * 定义射击类:CanShut * 定义纯虚函数:aim、reload */ class CanShut { public: virtual void aim() = 0; virtual void reload() = 0; }; /** * 定义枪类:Gun * 公有继承射击类 * 实现成员函数:aim、reload */ class Gun : public CanShut { public: virtual void aim() { cout << "Gun -- aim" << endl; } virtual void reload() { cout << "Gun -- reload" << endl; } }; /** * 定义含参函数射击:hunting * 调用参数的aim与reload函数 */ void hunting(CanShut *s) { s->aim(); s->reload(); } int main(void) { // 实例化枪对象 CanShut *s = new Gun; // 调用含参函数hunting,将对象枪传入函数中 hunting(s); // 释放内存 delete s; s = NULL; return 0; }
    查看全部
    0 采集 收起 来源:巩固练习

    2018-03-22

  • RTTI的含义是运行时类型识别 RTTI技术可以通过父类指针识别其所指向对象的真实数据类型 运行时类型必须建立在虚函数的基础上,否则无需RTTI技术
    查看全部
    0 采集 收起 来源:练习题

    2017-11-22

  • typied注意事项
    查看全部
    0 采集 收起 来源:[C++]RTTI

    2017-11-22

  • typeid注意事项
    查看全部
    0 采集 收起 来源:[C++]RTTI

    2017-11-22

  • dynamic_cast注意事项:
    查看全部
    0 采集 收起 来源:[C++]RTTI

    2017-11-22

  • 可以使用接口类指针指向其子类对象,并调用子类对象中实现的接口类中纯虚函数; 一个类可以继承一个接口,也可以继承多个接口; 一个类可以继承接口类的,同时也继承非接口类,
    查看全部
    0 采集 收起 来源:练习题

    2017-11-21

举报

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

微信扫码,参与3人拼团

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

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