検索結果 2 件
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 派生クラスで関数ポインタを使うとうまくビルドできません
- 返信数: 4
- 閲覧数: 8249
Re: 派生クラスで関数ポインタを使うとうまくビルドできません
test::test() { func[0] = &test::a1; func[1] = &test::a2; } この部分が全部不要です。 これを削除してもa1,a2は仮想関数なので派生クラスでオーバライドした関数が呼ばれます。 コンストラクタに同じ処理を書かなくても、オーバーライドしてくれるのですね。 勉強になりました。 ありがとうございます。 無理に処理を共通化しようとするとややこしくなるだけなので止めたほうがよいです。 使うときに簡単に使えるようなプログラムを作ろうと思っていました。 が、無理に共通化してしまっていたようで、そうするとややこしくなってしまうようですね。 プログラムを...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 派生クラスで関数ポインタを使うとうまくビルドできません
- 返信数: 4
- 閲覧数: 8249
派生クラスで関数ポインタを使うとうまくビルドできません
今、ボタンを作っています。 種類の違うボタンの処理をつくるのに、クラスを使うと同じ処理部分を省略できて楽だと知り 初めてクラスを使ってみた状況です。 ベースのボタンクラスを作り、新しいクラスに継承させて、 処理を変更させたい関数を、オーバーライドし、処理の部分を変えました。 それを関数ポインタを使って処理させたいのですが うまくビルドできません。 簡単なプログラムにしてやってみたのですが、 関数ポインタの所がうまくいってないようです。 #include "DxLib.h" class base { public: void (base::*func[2])(...