クラスAとその派生クラスA1, A2があるとき, A-1とA-2の両方のオブジェクトを引数に取れる関数って作れる?

class A {
virtual void hoge();
};

class A1 {
void hoge() {
// ここを実行させたい
}
};

int recieve_hoge(A* a) {
a.hoge();