Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么静态#u cast不';t强制转换到已初始化的类_C++_Casting_Static Cast - Fatal编程技术网

C++ 为什么静态#u cast不';t强制转换到已初始化的类

C++ 为什么静态#u cast不';t强制转换到已初始化的类,c++,casting,static-cast,C++,Casting,Static Cast,我想使用static\u cast将数据转换为类实例。奇怪的是,它总是强制转换到基类,而不是初始化的子类。下面是示例代码: #include <iostream> using namespace std; class A { public: void Display () { fprintf(stderr, "I am A\n"); } }; class B : public A { public: void Display () {

我想使用
static\u 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 B

你想使用
virtual
方法。啊。。!工作非常感谢:)顺便说一句,你不需要演员阵容。@PeteBecker,是的,我知道,这只是更大代码的一小部分。为了简化我的问题,我已经这样做了。
I am B
I am B