#include <iostream>
using namespace std;
class base1
{
public:
base1(){cout<<"base::base()!"<<endl;}
void virtual printBase(){cout<<"base::printBase()!"<<endl;}
};
class derived1: virtual public base1
{
public:
derived1(){cout<<"derived::derived()!"<<endl;}
void printDerived(){cout<<"derived::printDerived()!"<<endl;}
};
int main(int argc, const char * argv[])
{
derived1 oo;
base1 *oo1=&oo;
oo1->printBase();
derived1 *oo2=dynamic_cast<derived1 *>(oo1);//基类必须为多态而且虚基类指针指向派生类对象时才能下行转化,C++编译器具有RTTI检查
oo2->printDerived();
return 0;
}
关于虚基类指针向派生类指针转化
最新推荐文章于 2025-07-16 23:46:26 发布