> 2001/09/07 (金) 14:27:22 ◆ ▼ ◇ [mirai]> > ふむふむ。
> > その説明だと普通のメソッドと仮想関数の違いがよくわからないよ。
> > 純粋仮想関数についてはわかった。
> > ところでC++では仮想関数や純粋仮想関数を含むクラスはnewできるのかい?
> > 暇だったらでいいんだが、もうすこし俺の先生をやってくれよ。
> 多態性のためとかいてるだろ。
> 基底クラスでvirtualで宣言しなかったら、派生クラスでオーバーライドしてても、
> そのメソッド呼び出しはポリモーフしない。
> 純粋仮想関数を含むクラスはインスタンス化できない。
なるほど。そう説明してくれればわかったよ。つまり
class StrangeWorld {
virtual void Heisa() { cout << "わたしはあやしいわーるどはもうしないことにしました"; }
}
class Mirai : StrangeWorld {
virtual void Heisa() { cout << "( '-')/ 閉鎖します"; }
}
なクラスがあったら
void main(void) {
StrangeWorld spot = new Mirai();
spot.Heisa();
}
のときの結果が
( '-')/ 閉鎖します
になるわけ?
便利といえば便利かもしれないけど…
ちょっとC++肌に合わないかもしんない。
参考:2001/09/07(金)14時22分03秒