- ベストアンサー
初期化
AppのInitInstance、ダイアログクラスのInItDialog、もしくはコンストラクタで初期化を行うのはどんな違いがあるのでしょうか?ただ単にび出される順番が違うだけでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
CWinApp::InitInstance()はアプリケーションが起動されたときに1度だけ呼ばれます。 用途としては、アプリケーションに対する初期処理を行います。 CDialog::InItDialog()は、Create()がコールされ、ダイアログが表示される直前(WM_INITDIALOGメッセージが来たとき)に呼ばれます。 用途としては、ダイアログのコントロールに値を表示したりします。 コンストラクタは、そのクラスのインスタンスが生成される度に呼ばれます。 用途としては、そのクラスのメンバ変数の初期化などを行います。 なお、クラスのインスタンスが生成されるタイミングというのは、 1.自動変数としてクラスのオブジェクトが宣言されている関数が呼び出されたとき。 2.newキーワードで、明示的にインスタンスが作成されたとき。 などです。 注意点としては、コンストラクタの中では仮想関数を呼び出すことができません。
お礼
いつもありがとうございます。