静的変数を宣言したらクラスウイザードでエラーが発生 – プログラミング – Home

静的変数を宣言したらクラスウイザードで...
 
通知
すべてクリア

[解決済] 静的変数を宣言したらクラスウイザードでエラーが発生


竹の子ビッチ
 竹の子ビッチ
(@竹の子ビッチ)
ゲスト
結合: 23年前
投稿: 20
Topic starter  

win2000 VC++6.0 sp5 MFC使用

いつもお世話になっています。

CButtonExというクラスのメンバ関数の中で
他クラス(CSampleDlg)のPublicメンバ変数を参照したいので
SampleDlgの変数をStaticで宣言するように変更しました。
そして、SampleDLGの.hだけでなく.cppにも変数宣言を付け加えました。
ビルドも通り問題なく動作しましたが、
SampleDlgのクラスウイザードを開くと
【Parsing error ;が必要です。
 インプットライン static CButtonExm_button】
というエラー出ます。
CButtonExはSampleDlgで宣言した変数の型(クラス)で、
m_buttonが変数(オブジェクト)です。
これはCSanpleDlgのクラスウイザードのメンバ変数で宣言したものです。
何故エラーなのかわかりません。

また、
クラスのメンバ関数の中で
他クラスのPublicメンバ変数を参照するには
静的変数で宣言するしか方法はないのでしょうか。

何方か良い方法がありましたら
アドバイスお願いします。

そのメンバ変数を静的変数で宣言するしかないのでしょうか。

 


引用未解決
トピックタグ
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

> そのメンバ変数を静的変数で宣言するしかないのでしょうか。

んなことありません。

ボタンとダイアログの間柄なら
一般的にボタンの親がダイアログです。つーことは。

CSampleDlg の(パブリック)メンバ変数 m_nHoge は
ボタンクラス内で

CSampleDlg* pDlg = (CSampleDlg*)GetParent(); // などとして

pDlg->m_nHoge でアクセスできます。


返信引用
竹の子ビッチ
 竹の子ビッチ
(@竹の子ビッチ)
ゲスト
結合: 23年前
投稿: 20
Topic starter  

Bunさん

感謝です。
ご指摘のやり方で参照出来ました。

以前のように
IDCコンロールと関連してるメンバ変数を
静的変数に変える方法では出来ないのだろうか。

しかし
CButtonはCDialogの子ではなく
対等の位置に属してるのではないでしょうか。


返信引用
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

>CButtonはCDialogの子ではなく
>対等の位置に属してるのではないでしょうか。

GetParent()で○なのに、この発言も○なんですか?
矛盾していませんか?


返信引用
竹の子ビッチ
 竹の子ビッチ
(@竹の子ビッチ)
ゲスト
結合: 23年前
投稿: 20
Topic starter  

確かにその通りですね。
失礼しました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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