通知
すべてクリア
固定ページ 2 / 2
前へ
2010年9月27日 1:13 PM
グローバル変数の宣言と言う部分と書かれている内容に疑問。
グローバル変数と言うのは、グローバル領域に定義した変数なので
アプリケーションクラスのメンバー変数にはならないですよ。
例えばですが、あるダイアログの中でワーカースレッド上で動く
関数を作成するとして、画面の表示をそのダイアログで担当する
とした時は、ダイアログクラスの実装をしているソースファイルの
グローバル領域で変数を宣言するというような具合になります。
C++言語でやり取りが楽だからと言うような理由だけで
グローバル変数を多用するのは良く無いと思いますけれど、
きちんとした理由があって使う分には問題無いと思います。
2010年9月27日 5:39 PM
ちなみにですが、私の場合は
共有データクラスを作成してその中にやり取りするデータをメンバー変数で定義。
メンバー変数はprivateにしておいて、各メンバー用にゲッターとセッターを
作成。(このゲッターとセッターの中でクリティカルセクションで排他します)
で、この共有データクラスのインスタンスをグローバル領域に宣言します。
上記の書き込みにあるようにダイアログとワーカースレッドの両方から
参照できるようにグローバル変数として宣言。
とは言え、これは私流のやり方なのでこうしないといけないという話ではないです。
アプリケーションクラスにメンバーにするとアプリ全体で参照する可能性があるように
見えるので直接見える部分をある程度限定したいという思いが私の実装の理由です。
固定ページ 2 / 2
前へ