0

クラスヘッダーに次のような構造「configset」が必要です。

class A {
public:
    static configset *getnext();
}

もちろん、コンパイラは configset がタイプではないと文句を言いますが、いくつかの関数とともに別のヘッダー ファイルに実装されています。そのため、そのヘッダー ファイルをインクルードすることはできません。コンパイラは、これらの関数が複数回定義されているというエラーをスローします。しかし、クラスヘッダーで構成セットを取得するにはどうすればよいですか? 構造体が 2 回定義されているというエラーがコンパイラによってスローされるため、単にコピーしても機能しません。

4

3 に答える 3

1

configsetヘッダー ファイルで定義されている関数を前方宣言または宣言しますinline

于 2013-07-30T22:55:00.793 に答える
1

次のように前方宣言を使用します。

// Forward declare configset. Tells compiler that the class/struct is defined in 
// another translation unit
struct configset;

class A {
public:
    static configset *getnext();
};

これは、configset へのポインターのみを使用している場合にのみ機能することに注意してください。

于 2013-07-30T22:55:13.080 に答える
1

メソッドの実装をconfigset別の .cpp (ヘッダーではない) ファイルに移動します。

于 2013-07-30T22:57:30.860 に答える