首页文章正文

派生类调用基类虚函数,基类构造函数的调用顺序

虚函数 2023-11-14 17:48 366 墨鱼
虚函数

派生类调用基类虚函数,基类构造函数的调用顺序

ˋ▂ˊ 情况1:如果只创建基类对象则只调用基类的构造函数和析构函数。会调用基类的虚函数,不会调用派生类的虚函数。情况2:如果只创建派生类对象则构造顺序为:先调classA = 20 // 调用的是基类虚函数本身,数据却是派生类的数据classB// 调用的是派生类虚函数classB

析构函数可以定义为虚函数:将基类的析构函数定义为虚函数,当利用delete删除一个指向派生类定义的对象指针时,系统会调用相应的类的析构函数,否则只调用基类的析构函数,容易造成内存style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">最近写程序的时候发现,派生类对象的基类函数如果调用基类虚函数

1.调用派生类的析构函数2.调用基类的析构函数虚函数如下程序:classBase{public:Base(inta):ma(a){}virtualvoidShow(){std::cout<<"Base:Show ma="<

D::p1//通过对象调用,派生类版本掩盖了基类版本,因此调用的都是派生类版本D::p2 B::p1//通过指向派生类的基类指针调用,由于在指针的静态型别(基类)中所声明的(4)(5)(6)其实是在测试多态,只有function2函数才会调用子类的函数,其他的都只调用基类的函数,因为function2是虚函数,这也是虚函数在多态中的作用(动态联编) 另外,由于B是A类的派生

C++派生类调用基类的虚函数#include usingnamespacestd; classBase{ public: virtualvoidshow(){ cout <<"Base"<< endl; } }; classDerived:public当然这里指的是虚函数。答案是:用取内容运算符*获得派生类对象,然后再强制转换成基类的对象,用它去调用即可。

后台-插件-广告管理-内容页尾部广告(手机)

标签: 基类构造函数的调用顺序

发表评论

评论列表

51加速器 Copyright @ 2011-2022 All Rights Reserved. 版权所有 备案号:京ICP1234567-2号