网站导航如何用响应式做,汉中微信网站建设公司,智邦国际erp系统登录,医疗企业网站模板一、概念
虚函数表是一个存在指向虚函数的指针数组#xff0c;每一个带有虚函数的类都有一个虚函数表。虚函数表与虚函数一样是可以继承。这个表的每一个数组的值都是指向虚函数的指针。 二、虚函数表如何继承与重写
1、一个类继承另外一个带有虚函数的类#xff0c;并且没… 一、概念
虚函数表是一个存在指向虚函数的指针数组每一个带有虚函数的类都有一个虚函数表。虚函数表与虚函数一样是可以继承。这个表的每一个数组的值都是指向虚函数的指针。 二、虚函数表如何继承与重写
1、一个类继承另外一个带有虚函数的类并且没有重写和增加虚函数。这个类的虚函数表就和父类一样。
2、当派生类重写了父类的虚函数则派生类继承父类虚函数表的基础写对重写的函数对应的数组进行修改。也就是把这个值修改成指向派生类的函数地址。
3、派生类新增了虚函数则就在虚函数表的末尾增加。 三、虚函数表的作用
虚函数表可以支持动态动态允许基类的指针或引用调用派生类的函数。 例子
class Base{
public: virtual void test() { std::cout Base::virtual function std::endl; }
}; class Derived : public Base {
public: void test() override { std::cout Derived::virtual function std::endl; }
public: void testAdd() { std::cout Derived::testAdd() std::endl; } virtual void testAddVi() { std::cout Derived::testAddVi() std::endl; }
}; int main()
{ Base* obj new Derived(); obj-test(); // //只能调用基类继承下来的函数 //obj-testAdd();//不能调用派生类增加的其它函数 //obj-testAddVi();//同样不能调用派生类新加的虚函数 //定义派生类重新指向 Derived* de dynamic_castDerived*(obj); de-testAdd(); de-testAddVi(); delete obj; getchar(); return 0;
}