我有一个类 A,它具有结构作为成员,另一个类 B 继承了类 A,类 B 的结构继承了类 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::st
是 A::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.
关于c++ - 是否可以将基类 is struct 分配给派生类 struct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43111063/