如何在函数内部定义类以便彼此“知道”?这是我试图理解的一个非常愚蠢的版本。我想做类似的事情:在函数内声明的相互C++类
void foo() {
struct A {
static void bar() {
B::hmm();
}
};
struct B {
static void hmm() {
A::bar();
}
}
}
这不起作用,因为A :: bar()对B还不了解。在函数之外,我可以推迟A :: bar()的定义,直到声明B为止。类似于:
void foo() {
struct A {
static void bar();
};
struct B {
static void hmm() {
A::bar();
}
}
void A::bar() {
B::hmm();
}
}
但是,这似乎不起作用的功能。
代替一些聪明的范围声明,使这一切工作,我也欢迎一个明确的答案,这是不可能在C + +(请参考请)。
我知道有其他的方法来解决这个(声明的foo之外的类,例如),所以我不找就怎么做类似的东西答案...
为什么你不能只使用一个命名空间? – GWW 2010-12-16 06:00:34
@GWW,我认为你没看完我的最后一句话。 – xscott 2010-12-16 06:11:16
我读过它,但我很好奇为什么你不能使用命名空间并需要使用函数。 – GWW 2010-12-16 06:13:47