我想使用static_cast
将数据强制转换为类实例。奇怪的是,它始终是基类而不是初始化的子类。以下是示例代码:
#include <iostream>
using namespace std;
class A
{
public:
void Display () {
fprintf(stderr, "I am A\n");
}
};
class B : public A
{
public:
void Display () {
fprintf(stderr, "I am B\n");
}
};
int main()
{
B *b=new B();
b->Display(); //Invokes subclass function
A *a=static_cast<A*>(b);
a->Display(); //Invokes baseclass function
}
当前输出:
I am B
I am A
预期产出:
I am B
I am B