gpt4 book ai didi

c++ - dynamic_cast 在三级继承的情况下导致分段冲突

转载 作者:行者123 更新时间:2023-11-27 23:16:34 25 4
gpt4 key购买 nike

<分区>

dynamic_cast 似乎在三级继承的情况下不起作用。

应用程序在 print() 方法调用点(在 main() 中)因段错误(核心已转储)而崩溃。

代码如下:

#include <iostream>
#include <typeinfo> //must be included to call any member functions for the typeinfo object returned by typeid()
using namespace std;
class CBase
{
public:
virtual void print()
{
cout<<"CBase::print"<<endl;
}
virtual ~CBase()
{ }
};
class CDerivedA : public CBase
{
public:
virtual void print()
{
cout<<"CDerivedA::print"<<endl;
}
virtual ~CDerivedA()
{}
};
class CDerivedB : public CDerivedA
{
public:
void print()
{
cout<<"CDerivedB::print"<<endl;
}
};
int main()
{
CBase* ptrB = new CDerivedA();
CDerivedB* ptrDB = dynamic_cast<CDerivedB*>(ptrB);
ptrDB->print();
return 1;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com