Parent class 持有 child class C++ 的静态实例

Parent class holds a static instance of child class C++

我正在声明两个如下所示的 classes,A 是父 class,B subclass A:

//a.h
#include "b.h"
//class B;     Adding this line doesn't work
class A{
    static B b;
}

//b.h
#include "a.h"
class B:public A{     // XCode error here: expected class name

}

可是,XCode6.1不让我编译,一直说"expected class name"。

事实上,我正在尝试实现游戏编程模式 http://gameprogrammingpatterns.com/state.html#static-states 一书中提到的状态机。在那本书中,父状态 class 包含子状态 classes.

的静态实例

下面的代码就足够了:-

//b.h
#include "a.h"     <<<< This requires full definition for `A`.
class B : public A
{ 

}

//a.h         <<<<< No need to include any file.
class B;
class A{
    static B b;
};