如何在函数内部定义类,以便它们“了解”彼此?这是我试图理解的一个非常愚蠢的版本。我想做类似的事情:
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 之外声明类),所以我不是在寻找关于如何做类似事情的答案......