子ダイアログソース関数内の変数を取得する – プログラミング – Home

子ダイアログソース関数内の変数を取得す...
 
通知
すべてクリア

子ダイアログソース関数内の変数を取得する


doborn
 doborn
(@doborn)
ゲスト
結合: 16年前
投稿: 1
Topic starter  

呼び出し元ダイアログAとダイアログA内のボタン押下で生成されるダイアログBがありま
す。

CBDlg.cpp

void CBDlg::bbb()
{
int i = 5; // 例
}

とあり、

Aの方にも

void CBDlg::bbb()
{
int i = 5;
}

の i を渡らせたいです。

イメージとしては

CADlg* cad;
cad->bbb.i;

をイメージしています。

extern を使わないで取得したいのですがどのような方法があるのでしょうか?

下手な質問で申し訳ございませんがよろしくお願いします。


引用解決済
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

質問ヘタすぎ。つか「なにが言いたい?」

DialogBが表示され、そいつに対するユーザからの入力をDialogAで参照したい、ってこ
と?

class DialogB : public CDialog {
public:
int get_user_input() const { /* なんか返す */ }
...
};

DialogB dlb;
if ( dlb.ShowDialog() == ID_OK ) {
int value = dlb.get_user_input(); // ユーザ入力を得る
...
}

ってーことですか?


返信引用
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 5年前
投稿: 828
 

あるクラスのメンバ関数内の自動変数は、
その関数以外の如何なる場所からも参照
することはできません。

共用又は相互参照したい変数は、メンバ変数等の、
他から参照可能な場所に用意したらど~でしょう。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

> if ( dlb.ShowDialog() == ID_OK ) {

おっと、MFCなら ShowDialog() 改め DoModal() かな。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

ローカル変数は基本的にスコープ内部でのみ使えればよいデータを置く所です。
何故ならローカル変数はそのスコープを外れると消滅するからです。
他からも参照したいのであれば、参照したい時に存在している必要があります。
一般的にはクラスのメンバー変数にするのが普通だと思います。
クラスのメンバー変数であれば、クラスのインスタンスが存在している間は
変数も存在が保証されます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました