関数の内部でクラスを定義してお互いを「知る」方法を教えてください。ここで私が理解しようとしているものの大いにダムダウンされたバージョンです。関数内で宣言された相互C++クラス
void foo() {
struct A {
static void bar() {
B::hmm();
}
};
struct B {
static void hmm() {
A::bar();
}
}
}
A :: bar()はまだBについて何も知らないので、これは動作しません。関数の外では、Bが宣言されるまで、A :: bar()の定義を延期することができます。何かのように:
void foo() {
struct A {
static void bar();
};
struct B {
static void hmm() {
A::bar();
}
}
void A::bar() {
B::hmm();
}
}
しかし、それは機能の内部で動作していないようです。
これをすべて有効にする賢明なスコープ宣言の代わりに、これはC++ではまったく不可能であるという(決定的な)回答を歓迎します(参照してください)。
「あなたはドン
なぜ名前空間を使用できないのですか? – GWW
@GWW、あなたは私の最後の文章を読まなかった。 – xscott
私はそれを読んだが、なぜあなたが名前空間を使うことができず、関数を使う必要があるのか不思議である。 – GWW