比方说,我有两个类:C++每个类依赖于第二个
class One {
Two *somevar = new Two;
// (...)
};
class Two {
One *somevar = new One;
// (...)
}
而这是不可能的编译类似的东西。如何处理它?
比方说,我有两个类:C++每个类依赖于第二个
class One {
Two *somevar = new Two;
// (...)
};
class Two {
One *somevar = new One;
// (...)
}
而这是不可能的编译类似的东西。如何处理它?
因为所有你正在筑巢是一个指针,尝试:
class Two;
class One {
Two *somevar = new Two;
// (...)
};
class Two {
One *somevar = new One;
// (...)
}
通过前瞻性声明类Two
,你给编译器足够的信息,以便能够建立内部One
类的指针。如果你试图自己嵌套类而不是指针,那么就没有办法解决这个问题。
我想我找到了解决办法:
// class Type instead of Type
// so:
class Two *somevar = new class Two;
@bta有正确的答案 - 所有你需要的是向前声明。然而,这种“相互拥抱”对我来说总是一种代码味道。我并不是说这是正确的,但我所说的是,以我个人的经验来看,每当遇到这种情况时,就意味着我没有仔细考虑过我的班级结构。通过重组班级,问题通常会消失。你有没有考虑过你所拥有的不是一个编码问题,而是一个设计问题? – Mawg 2010-06-29 00:24:17