1. ホーム
  2. c++

[解決済み] C++のExtern Struct?

2022-01-28 06:55:20

質問

他のクラスから変数を取得するためにexternを使用していますが、intやfloatなどでは問題なく動作しています。

でも、これではうまくいきませんし、どうしたらいいのかわかりません。

クラス1.cpp

struct MyStruct {
 int x;
}

MyStruct theVar;

クラス2.cpp

extern MyStruct theVar;

void test() {
 int t = theVar.x;
}

Class2はMyStructが何であるかを知らないので、うまくいきません。

どうすれば直るのですか?

Class2.cppで同じ構造体を宣言してみたところ、コンパイルはできましたが、値がおかしくなってしまいました。

どのように解決するのですか?

を配置します。 struct MyStruct 型宣言を .h ファイルを作成し、class1.cpp と class2.cpp の両方にインクルードしてください。

IOW

Myst.h

struct MyStruct {
 int x;
};

クラス1.cpp

#include "Myst.h"

MyStruct theVar;

クラス2.cpp

#include "Myst.h"

extern struct MyStruct theVar;

void test() {
 int t = theVar.x;
}