0

たとえば、Ah ヘッダー ファイルがあり、その中に次のようなクラス宣言があります。

class A {
public:
    struct Node {
        int val;
    };
private:
    B* b;
};

Bh ファイルで定義されているクラス B のポインターが含まれています。

class B {
public:
    A::Node* node_new() { ***};
};

プロジェクトをコンパイルすると、「ネストされた名前指定子」エラーが発生します。それを解決する方法は?

4

1 に答える 1

3

はい、Ah には #include"Bh" が含まれ、Bh には #include "Ah" が含まれます

したがって、ここでは無限再帰です...ファイル内のクラスの前方宣言を使用し、に含めるB必要があるため、これは正常に機能するはずです。A.hA.hB.h

于 2013-03-29T05:27:08.870 に答える