#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クラスで新規に作ったメソッドを呼び出したい。
}
