一般に、オブジェクト指向プログラミングではグローバル変数を使用しないでください。あなたの場合、メインクラスの変数に静的なアクセス関数を提供することで、問題を解決できます。しかし、これはOOPにいくらか反対であることに注意してください。
class MainClass
{
public:
static int mySharedValue(void) { return m_mySharedValue; }
static void setMySharedValue(int value) { m_mySharedValue = value; }
private:
static int m_mySharedValue;
}
Foo::myOtherClassFunction(void)
{
// do something
int bar = MainClass::mySharedValue();
// do some more
}
さらに、あなたははQApplicationからメインアプリケーションを導くことができるとQtが提供するqApp
ポインタを介してメインオブジェクトにアクセスする、そこにアクセス機能を追加します。 それに加えて、グローバル変数をC言語で使用するのと同じ方法で使うことができますが、これはお勧めしません。
.hppファイルに 'extern'キーワードがありません。これは、hppが含まれるたびに' myGlobalInt'をインスタンス化します。 – bluebrother
@bluebrotherありがとう、修正済みです。 –