【发布时间】:2012-07-23 10:21:44
【问题描述】:
像 Java 和 C# 一样,我可以在同一个类中创建一个类的对象吗?
/* State.h */
class State{
private:
/*...*/
State PrevState;
};
错误:
field 'PrevState' has incomplete type
【问题讨论】:
-
你不能那样做。你能做的最好的就是
State *PrevState;。 -
这样的对象需要无限的内存和无限的初始化时间。
-
如果你熟悉C#,上面的代码更接近
public struct State { public State nextState; }。 C++ 是一种具有值语义的语言,您必须显式请求引用语义(通过指针/引用)
标签: c++