关于虚基类指针向派生类指针转化

#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;  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值