为了账号安全,请及时绑定邮箱和手机立即绑定
  • try和catch是一对多的关系
    查看全部
    0 采集 收起 来源:[C++]异常处理

    2017-04-25

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

    2017-04-25

  • 父类与子类的虚函数表首地址不一样 父类与子类的虚函数表中存放的相同的函数指针的地址是同样的(即调用的函数是同一个,很好地说明子类中的这个函数就是从父类继承的(但如果子类中有额外声明过相同的虚函数,则子类的虚函数表中指向的该函数地址就会发生改变))
    查看全部
  • 虚函数特性可以被继承,当子类中定义的函数与父类中虚函数的声明相同时,该函数也是虚函数。只是平时我们都习惯在子类的虚函数前面也加上virtual关键字
    查看全部
    0 采集 收起 来源:练习题

    2017-04-24

  • 虚析构函数主要保证了内存不被泄露
    查看全部
  • virtual只能修饰某个类的成员函数,1.普通的全局函数不能被修饰,2.静态static函数、3.inline内联函数(inline的函数是复制到调用位置,而不是跳转调用,这样的好处是避免函数调用本身出栈入栈消耗额外的时间)、4.构造函数都不能被修饰
    查看全部
  • 动态多态中会存在内存泄漏的问题。主要是在于父类的构造函数中申请了指向子类的指针,而main函数释放父类的指针内存时没有同时释放申请的子类内存。
    查看全部
  • 基类指针无法直接调用派生类的独有方法,所以需要将基类指针转化为派生类指针。
    查看全部
    0 采集 收起 来源:[C++]RTTI

    2017-04-23

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

    2017-04-23

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

    2017-04-23

  • cout<<typeid(*obj).name()<<endl; 将当前的*obj指向的实际的对象类型打印 Bird*bird=dynamic_cast<Bird*>(obj); 将obj转化为Bird*类型
    查看全部
    0 采集 收起 来源:[C++]RTTI

    2018-03-22

  • 静态多态(早绑定) 动态多态(晚绑定) 使用父类指针指向子类对象,子类与父类有同名函数,加virtual成为虚函数,则调用相同的函数名的时候调用的是子类的函数
    查看全部
    3 采集 收起 来源:[C++]虚函数

    2017-04-23

  • IndexException() 可以类比new IndexException() 实际上前者是抛出一个类,后者是申请一个类。 从老师的视频中可以看到,该类是使用默认构造函数, 即没有初始化参数。所以IndexException后加(),内 无参数,如果有参数,那么()内应该填写相应初始化参数值。
    查看全部
  • // 接上 /** * 定义狗类:Dog * 公有继承动物类 * 虚成员函数:eat()、move() */ class Dog : public Animal { public: // 默认构造函数 Dog() { cout << "dog()" << endl; } // 含参构造函数 Dog(string name){m_strName = name; cout << "Dog" << endl;} // 虚析构函数 virtual ~Dog(){cout << "~Dog" << endl;} // 虚成员函数eat() virtual void eat(){cout << "Dog--" << m_strName << " -- eat" << endl;} // 虚成员函数move() virtual void move(){cout << "Dog--" << m_strName << " -- move" << endl;} public: // 数据成员 string m_strName; }; int main(void) { // 通过动物类实例化狗类 Animal *dog = new Dog(); // 调用成员函数 dog.eat(); dog.move(); // 释放内存 delete dog; dog = NULL; return 0; }
    查看全部
    0 采集 收起 来源:单元练习

    2018-03-22

  • #include <iostream> #include <stdlib.h> #include <string> using namespace std; /** * 定义动物类:Animal * 虚函数:eat() * 纯虚函数:move() * 数据成员:m_strName */ class Animal { public: // 默认构造函数 Animal(){ cout << "Animal()" << endl; } // 含参构造函数 Animal(string name){m_strName = name; cout << "Animal" << endl;} // 虚析构函数 virtual ~Animal(){cout << "~Animal" << endl;} // 虚成员函数 virtual void eat(){cout << "Animal--" << m_strName << "-- eat" << endl;} // 纯虚函数 virtual void move() = 0; public: // 数据成员 string m_strName; }; /** * 定义狗类:Dog * 公有继承动物类 * 虚成员函数:eat()、move() */
    查看全部
    1 采集 收起 来源:单元练习

    2018-03-22

举报

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

微信扫码,参与3人拼团

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

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