64,649
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class A{
public:
virtual void funcA(){
cout<<v;
}
private:
int v=5;
};
class B{
public:
virtual void funcB(){
cout<<v;
}
private:
int v=15;
};
class C:public A, public B{
};
int main()
{
A* a= new C;
a->funcA(); //输出5
((B*)a)->funcB(); //输出5
//请问我要输出15应该怎么做?
}
A* a = new C;
a->funcA(); //输出5
((B*)a)->funcB(); //输出5
C *pC = dynamic_cast<C*>(a);
if (nullptr != pC)
{
pC->funcB(); // 输出15
}
int main()
{
A* a= new C;
a->funcA(); //输出5
((B*)a)->funcB(); //输出5
((C*)a)->funcB(); //15
B* b= new C;
b->funcB(); //15
((C*)b)->funcA(); //5
//请问我要输出15应该怎么做?
}
((B*)((char*)(a)+sizeof (A)))->funcB();