1

重複の可能性:
相互に参照するクラスを宣言するにはどうすればよいですか?

以下は、.hファイルの私のコードです。コンパイラは、CPatternにSPオブジェクトがあることについて文句を言います。SPの宣言をCPatternの上に配置することはできません。これは、CPatternオブジェクトも宣言しているためです。どうすればこれを解決できますか?ご協力ありがとうございました!

class CPattern
{
public:
    CPattern(void);
    ~CPattern(void);

    SP & Create(void);
};


class SP
{
private:
    const CPattern*    pPat;
public:
    SP()
    {
    }
    ~SP()
    {
        // pointer no longer requried
        delete pPat;
    }    
};
4

1 に答える 1

3

class SP;ファイルの先頭に追加します。これは前方宣言であり、コンパイラに何であるかを通知しますSPが、その実装については説明しません。

于 2012-09-28T03:09:54.417 に答える