-
多态存在的问题:内存泄漏
注意事项:
普通函数不能是虚函数,即该函数不能为全局函数,要是成员函数
静态成员函数不能是虚函数
内联函数不能是虚函数,否则会忽略inline关键字
查看全部 -
多态具体到语法中是指,使用父类指针指向子类对象,并可以通过该指针调子类的方法。
产生多态的基础是继承关系,没有继承就没有多态
多态的语法核心是virtual关键字,必须使用virtual才能使多个类间建立多态关系。
封装、继承、多态是面向对象的三大特性。
查看全部 -
静态多态(早绑定):程序在编译阶段根据参数个数确定调用哪个函数。
动态多态(晚绑定):动态多态是以封装和继承为基础的。如果要想实现动态多态则必须使用虚函数
查看全部 -
多态:在C++中是指同样的消息被不同类型的对象接收时导致不同的行为,这里讲的消息就是指对象的成员函数的调用,而不同的行为是指不同的实现。也就是调用了不同的函数
面向对象三大特征:封装、多态、继承
查看全部 -
隐藏
1 父类子类
2 无virtual
3 函数名相同
4 参数可同可不同(随意)
覆盖
1 父类子类
2 函数名相同
4 基类和派生类同名函数必须有virtual关键字
查看全部 -
父类指针指向子类、且有同名函数时,如果调用子类的同名函数则要对每个同名函数使用virtual,即是虚函数;当父类指针指向子类,要销毁要用virtual,防止内存泄漏;
virtual不使用的情况:1.普通函数不用virtual;
2.静态成员函数不用virtual,如(virtual static int get())这是错的;
3.内联函数,如(inline virtual int eat())错;
4.构造函数不用virtual
查看全部 -
静态多态(早绑定):参考函数重载;
动态多态(晚绑定):参考父类指针调用子类函数,要想实现就得在父类的同名函数前加上virtual,使之成为虚函数,最好子类的同名函数也加上
查看全部 -
虚函数:virtual double calcArea(){---------;} 纯虚函数:virtual double calcPerimeter() = 0; 包含纯虚函数的类,就是抽象类,抽象类无法实例化对象 抽象类子类只有把抽象类当中的所有纯虚函数都做实现,才可以实例化
查看全部 -
当delete 父类指针 时 只会执行父类析构函数
当delete 子类指针 时 会执行子类析构函数,也会执行父类析构函数
查看全部 -
A. RTTI的含义是运行时类型识别
B. RTTI技术可以通过父类指针识别其所指向对象的真实数据类型
C. 运行时类型识别必须建立在虚函数的基础上,否则无需RTTI技术
D. 继承关系不是RTTI的充分条件,只是必要条件,所以存在继承关系的类不一定可以用RTTI技术
查看全部 -
可以使用接口类指针指向其子类对象,并调用子类对象中实现的接口类中纯虚函数。
一个类可以继承一个接口类,也可以继承多个接口类。
一个类可以继承接口类的同时也继承非接口类。 接口类中仅有纯虚函数,不能含有其它函数,也没有数据成员。
接口类可以被继承,不能实例化
查看全部 -
虚函数表:
1、C++中的多态是通过虚函数表实现的。
2、每个类只有一份虚函数表,该类的对象共用一张虚函数表。
3、两张虚函数表中的函数指针可能指向同一个函数。
查看全部 -
慕课网的头文件要加上头文件加上#include <typeinfo>就可以了,vs不用
查看全部 -
常见的异常:
数组下标越界
除数为0
内存不足
查看全部 -
异常传播方向
查看全部
举报