1

私はしばらくの間、この問題に取り組んできました。あるクラスから別のクラスに1文字の値を渡したいだけです

私のヘッダーファイルでは、宣言された変数があります:

  extern char variable1;

class1.cpp では、同じ変数が宣言されています。

char variable1 = 'N';  

class2.cpp で同じ変数が宣言されています: Y/N に必要なロジックが class1.cpp にあるため、これを初期化しません。

  char variable1;

これがどのように機能するかについての私の仮定は、ロジックを使用して Y に設定するか、クラス 1 で初期化されたように N のままにしておくことです。関数が終了したら、フォームのボタンをクリックして次のステップに進みます。クラスであり、それらはすべて同じ名前を持ち、ファイル名はキーワード extern を使用してヘッダー ファイルにあるため、値を前後に渡しますが、私の考えは間違っていますか? 私はまだVisual C++に慣れていないので、学ぼうとしています。

4

2 に答える 2

2

char variable1;なしは宣言でexternはなく、定義です。これは、 と の両方で変数を定義していることを意味します。これは違法です。1 つの .cpp ファイルでのみ定義します。他の .cpp ファイルは、変数へのアクセスを許可する宣言を含むヘッダーにする必要があります。class2.cppclass1.cpp#include

于 2013-04-26T14:52:44.673 に答える
0

extern char variable1;class1 の cpp ファイルで宣言し、class2 で定義するchar variable1;と、やりたいことができるはずです。

于 2013-04-26T14:55:46.797 に答える