C++ 要求在使用之前定义所有类型,这使得以正确的顺序包含头文件非常重要。美好的。但是我的情况呢:
Bunny.h
:
班兔 { ... 私人的: 参考<Bunny> 父级; }
编译器抱怨,因为在我在自己的类定义中使用它的时候,技术上还没有完全定义。因为我做了一些愚蠢的事情(无关)。Bunny
除了重写我的模板类Reference
以使其采用指针类型(在这种情况下我可以使用 的前向声明Bunny
)之外,我不知道如何解决这个问题。
有什么建议么?
编辑:我的Reference
类(XObject
是数据模式对象的基类):
模板 <class T = XObject> 类参考 { 上市: 参考():m_ptr(NULL){} 参考(T* p) { m_ptr = p; if (p != NULL) ((XObject*)p)->ref(); } 〜参考() { 如果(m_ptr) { ((XObject*)m_ptr)->deref(); } } // ... 赋值、比较等 私人的: T* m_ptr; };
编辑:这工作正常,问题是别的。非常感谢你的帮助!