私は仮想関数および仮想テーブルの基本的な概念を理解し、 なぜc.A();
プリントアウト仮想関数クラスのメンバ関数内で呼び出し
parent A
child
が、仮想キーワードなし次の例では、私は理解していませんParent :: func()の場合は、
parent A
parent
詳細をお知らせください。 vテーブル、メモリ(ヒープ、スタック)などで説明することは素晴らしいことです。
ありがとうございました。
#include <iostream>
template <class TYPE> class Parent
{
public:
Parent() {};
~Parent() {};
virtual void func() { std::cout << "parent" << std::endl; };
void A() {
std::cout << "parent A" << std::endl;
func();
}
};
template <class TYPE> class Child : public Parent <TYPE>
{
public:
Child() {};
~Child() {};
void func() { std::cout << "child" << std::endl; };
};
void main()
{
Child<int> c;
c.A();
}