以下の構造を定義して、複数のクラスがアプリケーション全体で使用できるようにしました。
ZHTypes.h
#ifndef ZHTypes_h
#define ZHTypes_h
struct BeingHitParams
{
bool isApplyKnockBack=true;
};
BeingHitParams *default_BeingHitParams_ptr = new BeingHitParams();
#endif
次の変数を定義しました
default_BeingHitParams_ptr
この場合、常に新しい構造を作成する必要がないため、関数のデフォルト パラメーターとしていくつかの場所で使用します。
とにかく、上記で定義された変数は、クラス内のコードで参照するたびにリンク エラーを生成します。しかし、前にstaticを追加すると、正常に動作します。
static BeingHitParams *default_BeingHitParams_ptr = new BeingHitParams();
私の質問は、クラス内からグローバルで非静的な変数にアクセスできないのはなぜですか? また、上記の状況のように変数へのアクセスが C++ で制限されている理由についての追加説明も知りたいです。