C++を理解していない。
#includeclass A {
public:
virtual ~A() {
std::cout << "Destruct A" << std::endl;
}virtual void Do() {
std::cout << "Do A" << std::endl;
}
};class B : public A {
public:
~B() {
std::cout << "Destruct B" << std::endl;
}void Do() {
std::cout << "Do B" << std::endl;
}
};class C : public B {
public:
~C() {
std::cout << "Destruct C" << std::endl;
}void Do() {
std::cout << "Do C" << std::endl;
}
};main()
{
C c;
c.Do();
}
自分はどうやらC++を全く理解していないようです\(^0^)/
> Do C
> Destruct C
> Destruct B
> Destruct A
基底クラスのどっかでvirtualが宣言されてれば、
以降のクラスではvirtual付けなくてもオーバーライドできたのね
(B::DoにvirtualつけなくてもCでオーバーライド出来る)。
あとデストラクタも。
知らなすぎだろ俺。