>>105
というか一回Baseにキャストしておkという設定だったらmewとhawlを抽象化するのが普通だろう
struct Base { virtual void make_sound(void) const = 0; /* (ry */ } ;
void Cat::make_sound(void) const { mew(); }
void Dog::make_sound(void) const { hawl(); }
void func(void * p) { static_cast<Base *>(p)->make_sound(); }
int main(void) {
Cat * p = new Cat;
func(p);
delete p;
return 0;
}