是否可以将 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::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.
我有 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::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.