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;
};
编辑:这工作正常,问题是别的。非常感谢你的帮助!