C++の抽象クラスに関しての質問です。
抽象クラスから派生させた派生クラスで、で新しい関数を作りました
この時に、
この時、hageta()は呼び出せないんですかね?
抽象クラスについて
Re: 抽象クラスについて
素直にキャストすれば呼び出せましたが、これではダメなのですか?
https://ideone.com/R1x0Kr
#include <cstdio>
// C++では、main関数の戻り値はint型にしなければならない。
#define main dumny(){} int main
struct base {
virtual void baseMsd() = 0;
};
struct hoge : public base {
void baseMsd() {
puts("hoge");
}
};
struct hage : public base {
void baseMsd() {
puts("hage");
}
void hageta() {
puts("hageta");
}
};
base* base[2];
void main(void)
{
base[0]=new hoge;
base[1]=new hage;
base[0]->baseMsd(); //baseの純粋仮想関数をhogeでオーバーライドされている。
((hage*)base[1])->hageta(); //hageクラスで新規に作ったメソッドを呼び出したい。
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)