到目前为止,我无法在Google上找到关于以下内容的解释,这让我感到困惑.
我有一个Scene存储层次结构SceneObjects.该Scene充当模板SceneObject厂,所以当簿记可以做到SceneObject创建或删除子类的实例.这两个类都在它们自己的动态链接模块中,并且位于模块命名空间内(不确定这是否重要).
(简化)SceneObject类看起来像这样:
// SceneObject is a base class, but is not pure.
class SceneObject
{
// The parent Scene needs to be able to access protected functions.
friend class Scene;
protected:
// This is protected to enforce the factory design pattern.
// We don't want SceneObjects created without being tied to a Scene.
SceneObject(Scene* parentScene, SceneObject* parentObject);
public:
...
};
Run Code Online (Sandbox Code Playgroud)
而(简化)Scene类看起来像这样:
class Scene
{
public: …Run Code Online (Sandbox Code Playgroud)