dynamic_cast的问题

doolin doolin 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
dynamic_cast是被用于安全的沿着类的继承关系向下进行类型转换.
看这个例子:
class Class
{
public:
Class(){
cout << "10" << endl;
}
virtual ~Class(){
cout << "11" << endl;
}

};

class Class_A : public Class
{
public:
Class_A(){
cout << "20" << endl;
}
virtual ~Class_A(){
cout << "21" << endl;
}
};

class Class_B : public Class_A{
public:
Class_B(){
cout << "30" << endl;
}
virtual ~Class_B(){
cout << "31" << endl;
}
};

但为什么这样的转换也会成功:
Class_B *pb = new Class_B;
Class_A *pa = dynamic_cast<Class_A *>(pb);
这样不是向上转换吗?
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
doolin
C++ 语言 65,214 成员 250,514 内容