是否可以将 base class 的结构分配给 dervied class 的结构

is it possible to assign base class's struct to dervied class's struct

我有 class A 作为成员的结构和另一个 class B 继承 class A 和 class B 的结构继承 class A 的结构.

class A
{
public:
    struct st
    {
        int x;
        int y;
    };
};

class B : public A
{
public:
    struct st : A::st
    {
        int z;
    };
};

下面的代码给我错误:做这件事的方法是什么

B::st* obj = NULL; 

obj = new A::st [10]; 

您的尝试是错误的,因为 B::stA::st 的子类型。因此,指向 A::st 的指针不能自动转换为 B::st.

类型的指针

出于同样的原因,您不能使用:

B* bPtr = new A;

你可以反过来做。

A::st* obj = NULL; 
obj = new B::st;  // Don't use the array new. That is going to be problematic.