是否可以在另一个子类中声明子类对象?

Is it possible to declare subclass objects in another subclass?

我对计算很陌生,尤其是对 C++ 及其提供的功能。请对抨击保持温和 :)

请问是否可以在另一个子类中声明一个子类对象。例如,我可以

class Shape {
...
};

class Square: public Shape {
..
};

class Cube: public Shape {
...
Square sq1;
...
};

我问这个是因为当我尝试编译时出现致命错误 LNK2019,但我的 IDE 没有突出显示任何具体内容。

当然可以。 Square 与其他 class 没有什么特别的不同。只是它恰好是另一个 class 的子 class 这一事实在这种情况下没有实际区别。

就像你可以拥有:

class Shape { ... };

class Square { .. };

class Cube: public Shape { ... Square sq1; ... };

您还可以拥有:

class Shape { ... };

class Square : public Shape { .. };

class Cube: public Shape { ... Square sq1; ... };

当然,某物是否是另一个 class 的子class 会改变 class 实例具有的方法,因为它将从其继承 public 方法超级class.