研究C++中的多重继承机制及其与void*指针转换之间的关系
发布时间
阅读量:
阅读量
C++语言具备多重继承的功能,但该特性在实际应用中可能引发一些异常状况,此前我曾遭遇过一个与指针转换相关的典型案例,具有较强的代表性。
以下是一个简化的测试示例代码:
#include <iostream>
using namespace std;
class IA
{
public:
virtual ~IA(){}
virtual void a() = 0;
};
class IB
{
public:
virtual ~IB(){}
virtual void b() = 0;
};
class CMulti : public IA, public IB
{
public:
CMulti(){}
~CMulti(){}
void a(){ cout << "C::a()" << endl; }
void b(){ cout << "C::b()" << endl; }
};
void testCastA(void *p)
{
cout << "cast from void*(" << p << ")to IA*: ";
全部评论 (0)
还没有任何评论哟~
