派生クラスをオーバーライドするときはvirtualつけようぜ
C++ では、継承とvirtualってやつを使ってオーバーライドすることができる
virtualをつけるのは、基底のクラスだけでよいみたいだけど、
派生のクラスにもつけておかないと訳が分からなくなるらしい。
たとえば、以下のような場合、
//Base.h
class Base
{
virtual void doSomething();
…
};
//Derived.h
class Derived : public Base
{
void doSomething();
…
};
このDerivedの定義だけをみてdoSomething関数がオーバーライドの関数なのかどうか判断するのが難しい。
ということで、virtualをつけて以下のようにするとよいらしい。
//Base.h
class Base
{
virtual void doSomething();
…
};
//Derived.h
class Derived : public Base
{
// ここにもvirtual付けるのよ!!
virtual void doSomething();
…
};
まあ、動作結果はどちらも同じらしいので、コメント入れておくだけでも
良いかもしれないけどね!!
まあ、俺はvirtual好きだからね。つける方にするよ。
現実より仮想世界。2次元!!(2.5次元もいいかもね。)
では。
ディスカッション
コメント一覧
まだ、コメントがありません