-
try和catch是一对多的关系查看全部
-
异常处理:try……catch…… throw查看全部
-
父类与子类的虚函数表首地址不一样 父类与子类的虚函数表中存放的相同的函数指针的地址是同样的(即调用的函数是同一个,很好地说明子类中的这个函数就是从父类继承的(但如果子类中有额外声明过相同的虚函数,则子类的虚函数表中指向的该函数地址就会发生改变))查看全部
-
虚函数特性可以被继承,当子类中定义的函数与父类中虚函数的声明相同时,该函数也是虚函数。只是平时我们都习惯在子类的虚函数前面也加上virtual关键字查看全部
-
虚析构函数主要保证了内存不被泄露查看全部
-
virtual只能修饰某个类的成员函数,1.普通的全局函数不能被修饰,2.静态static函数、3.inline内联函数(inline的函数是复制到调用位置,而不是跳转调用,这样的好处是避免函数调用本身出栈入栈消耗额外的时间)、4.构造函数都不能被修饰查看全部
-
动态多态中会存在内存泄漏的问题。主要是在于父类的构造函数中申请了指向子类的指针,而main函数释放父类的指针内存时没有同时释放申请的子类内存。查看全部
-
基类指针无法直接调用派生类的独有方法,所以需要将基类指针转化为派生类指针。查看全部
-
typeid注意事项查看全部
-
dynamic_cast注意事项查看全部
-
cout<<typeid(*obj).name()<<endl; 将当前的*obj指向的实际的对象类型打印 Bird*bird=dynamic_cast<Bird*>(obj); 将obj转化为Bird*类型查看全部
-
静态多态(早绑定) 动态多态(晚绑定) 使用父类指针指向子类对象,子类与父类有同名函数,加virtual成为虚函数,则调用相同的函数名的时候调用的是子类的函数查看全部
-
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; }查看全部
-
#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() */查看全部
举报
0/150
提交
取消