c++ - 是否可以将基类 is struct 分配给派生类 struct

标签 c++ struct instantiation

我有一个类 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::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. 

关于c++ - 是否可以将基类 is struct 分配给派生类 struct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43111063/

相关文章:

PHP:变量名作为类实例

c++ - 如何在自己分配的 std::map 中添加元素?

c++ - 构造函数的显式模板特化 (g++)

c++ - 链表中的自结构和指针

string - 在 Golang 中将 []interface 转换为 []string

c - 程序在读取第一个scanf(int类型)后进入 "while"时崩溃

c++ - 链接自注册的抽象工厂

c - 在 C 中使用结构体作为输入的语法

java - Java 中的新 <T>

node.js - NodeJS 无需文件即可构造自定义对象