ページ 11

変数の共有

Posted: 2013年5月28日(火) 20:00
by 長峰
main.cppにある変数を、利用するクラス群の継承元のクラスにexternを使い宣言しようとしたのですが、クラスメンバーに対するストレージクラスが無効であると、構文エラーが出ました。
ストレージクラスについて調べてみましたが、理解が及ばず、構文との関係がわかりませんでした。

本題の質問ですが、main.cppにある変数を他のソースで共有するには、どうしたら良いのでしょうか。

Re: 変数の共有

Posted: 2013年5月28日(火) 20:25
by softya(ソフト屋)
externをクラスの何処に書こうとしたのでしょうか?
寿命期間が違う場所に書けないので、それで怒られてのでは?
関数の中に書く分には怒られないと思いますが。

>本題の質問ですが、main.cppにある変数を他のソースで共有するには、どうしたら良いのでしょうか。

グローバル変数として書くということなので、あまり歓迎されないのは確かです。

Re: 変数の共有

Posted: 2013年5月28日(火) 20:58
by 長峰
>externをクラスの何処に書こうとしたのでしょうか?
>寿命期間が違う場所に書けないので、それで怒られてのでは?

そのまま置いていました。
externは寿命が長かったのですね。

>グローバル変数として書くということなので、あまり歓迎されないのは確かです。

グローバル変数の意味合いが曖昧なのですが、ヘッダーをincludeしていくことで共有するのでしょうか?

Re: 変数の共有

Posted: 2013年5月28日(火) 21:05
by softya(ソフト屋)
手段は関係ないです。

>グローバル変数の意味合いが曖昧なのですが、ヘッダーをincludeしていくことで共有するのでしょうか?

プログラムの何処からでも参照可能になるものと言う意味で捉えてください。

Re: 変数の共有

Posted: 2013年5月28日(火) 21:15
by 長峰
softyaさん回答ありがとうございます。

>プログラムの何処からでも参照可能になるものと言う意味で捉えてください。

グローバル変数の例を見ていつも頭を捻っていたので助かりました。
やはりそのような意味合いで合っていたのですね。

アドバイスを参考に無事コード作成できたので解決とさせて頂きます。ありがとうございました。