-1

hファイルで私は宣言します:

static IDataSynchronization& sync_data_;

しかし、cppで、sync_data_のコンパイルエラーが発生しました:

IDataSynchronization& MasterSlaveSynchronize::sync_data_;

エラーは:

MasterSlaveSynchronize::sync_data_ declared as reference but not initialized

私はできますが、それをポインタとして宣言したくないので、ここで何が問題なのか、そしてこれを回避する方法があるかどうかを知りたいと思います。

これはセットアップ時に渡される一種のコールバックであるため、宣言時に初期化できません(コンストラクターなし、静的セットアップ)。

ありがとうございました

4

2 に答える 2

2

できますが、初期化する必要があります。

IDataSynchronization& MasterSlaveSynchronize::sync_data_ = something;
于 2012-10-04T12:40:38.993 に答える
1

参照は宣言で初期化する必要があります。あなたのコメントからそれができないように思われるなら、あなたはポインタに頼らなければならないでしょう。そこに3番目のオプションはありません。

于 2012-10-04T12:46:47.397 に答える