- 1 名前:デフォルトの名無しさん [2008/04/24(木) 07:23:05 ]
- エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。 ※sage禁止です(と代々スレに書いてありますが自己判断で)。 【前スレ】 【初心者歓迎】C/C++室 Ver.59【環境依存OK】(実質Ver.52) pc11.2ch.net/test/read.cgi/tech/1206809426/ 【アップローダー】(質問が長い時はココ使うと便利) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
- 58 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 00:32:33 ]
- メンバ関数のポインタのとり方教えてください。
コメントの部分でエラーになってしまいます……。 class ca { public: int (*pa)(); int nasi(void); ca(void); }ca1; int ca::nasi(void){return 0;} ca::ca(void) {pa = nasi;} //コンパイルエラー
- 59 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 00:36:20 ]
- >>58
www.google.com/search?q=%E3%83%A1%E3%83%B3%E3%83%90%E9%96%A2%E6%95%B0%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF&btnG=%E6%A4%9C%E7%B4%A2
- 60 名前:11 mailto:sage [2008/04/25(金) 00:36:57 ]
- >>12 さん
なるほど。ありがとうございます!
- 61 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 00:42:52 ]
- void
- 62 名前:58 mailto:sage [2008/04/25(金) 00:51:53 ]
- >>59
ありがとうございます。おかげでできました。 これからはもう少し自分でも調べるようにします。 class ca { public: int (ca::*pa)(); int nasi(void); ca(void); }ca1; int ca::nasi(void){return 0;} ca::ca(void) {pa = &ca::nasi;}
- 63 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 02:53:11 ]
- >>13
亀レスですまんけど、何故そういう書き方ができるか、というより そういう書き方をする意味ならある。 確かそのようにニ重にテンプレート指定すると、 template <template <class> class T> class hoge{}; とした場合に、hogeのインスタンスを宣言するときに hoge< fuga<monyu> > Hoge; ではなく hoge<fuga> Hoge; で済むというメリットがあったと思う。 fugaもテンプレートクラスであるにも関わらず、fugaのテンプレート引数は 指定しなくていい(ただしデメリットもあったと思うけど)。 あまり覚えてないので大して助言できなくてスマン。
- 64 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 04:14:34 ]
- 補足。確か、そのような二重のテンプレートの場合
hogeクラスがmonyuの型を要求するような実体化を伴う場合、 (hogeクラスからfugaクラスのメンバ関数を呼ぶ場合でも。中でmonyuの型が必要なら) 実体化に失敗するんだったと思う。 その代わり、hogeクラスはfugaクラスのテンプレート引数に自由に型を 指定して利用することが出来る(もちろん文法が通る場合に限るが)。
- 65 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 05:06:36 ]
- >>63,64
詳しい説明感謝です。 他スレでも聞いてしまってましたが、 そっちとはまた違った説明で、おかげで かなり納得できました。
- 66 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 05:15:30 ]
- >>65
すまん、そっちの説明どんなだったか教えて欲しいかもw あんま使ったことない用法だから自信ないので・・
- 67 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 05:22:13 ]
- ダイアログ1のOnInitDialogにダイアログ2を1の子としてCreate、ShowWindowするコードを追加したいのですが、ダイアログ2の変数の作り方がわかりません。
ダイアログ1のヘッダーに paintDlg2 m_dlgPaint; を記述しても ';' が、識別子 'm_dlgPaint' の前に必要です。 というコンパイルエラーがでます。 インクルードの順序は確認したのですがうまくいきません。 2008で自動で変数追加しようとしても変数の種類が選べなくてよくわからないんです。
- 68 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 06:17:50 ]
- >>66
これですわ pc11.2ch.net/test/read.cgi/tech/1205059063/667
- 69 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 06:25:20 ]
- しかし
template <template <class> class T> これ、関数ポインタと同じ様な書式で template <class T<class> > と書くほうが自然な感じがするのは自分だけ?
- 70 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 06:49:43 ]
- >>68
thx。 しかし色んな書き方できるんだなぁ・・・
|

|