草庐IT

superstate

全部标签

对于指向同一基类的其他类的指针,C++11 非静态数据成员统一初始化失败

我是一名C老手,他试图通过将我的旧状态机框架从C移植到C++11来学习C++11。我的想法是为状态机本身创建一个类,然后为其中的状态创建一个嵌套类。状态可以是分层的,即超状态和子状态。框架需要了解状态的超状态,为此我在嵌套状态类中有一个指针(state*superstate)。我的问题是我打算通过直接在机器类中使用构造函数来设置超状态指针,这在C++11中应该是可能的,通过使用统一初始化进行非静态数据成员初始化。但由于某些原因,当设置为另一种类型的状态/类时,它无法编译(substateB3{superstateA})。但如果我稍后为此目的使用特定函数(set_superstate)设