【发布时间】:2011-09-01 04:20:47
【问题描述】:
我发现要扩展一个类,我必须这样做:
class x : public extendsThis { // rest here
};
所以,我在两个单独的文件中创建了 2 个类:
- particle.h -
class particle : public program {
};
- program.h -
class program {
particle* myParticle;
};
但是,在程序类中我想要粒子对象,然后再次扩展程序类。
然而,这需要我在粒子类中包含一个包含 program.h,并在程序类中包含一个粒子.h,以让它们彼此了解。然而,这造成了一些让我无法编译的无限循环。
有什么办法可以解决这个问题,还是我做错了什么?
【问题讨论】:
-
为什么要这样做?如果一个程序有一个程序成员变量和一个程序成员变量和一个程序成员变量等等,你将永远能够实例化你的类。我想你可以使用 pointer 指向一个粒子(isa program),只要你不在构造函数中启动它,但这仍然看起来像一个真是个坏主意。
-
是的,我很抱歉,行:“particle myParticle”应该是:“particle *myParticle”
-
@Ruddie 不要以使所有现有答案无效的方式编辑问题!
-
哦,好吧,我很抱歉。虽然在你发表评论之后 - 我发现我忘记了它确实是一个指针。
-
@Ruddie 这些答案是否解决了您的问题?
标签: c++ class header superclass extending