classsub
から継承するクラスがありsuper
ます。どちらも関数を定義しますvoid function()
(したがって、 の関数は の関数をsub
オーバーライドしますsuper
)。ポインターを作成し、super
それを の新しいインスタンスに割り当てますsub
。次に、ポインターを介して function()
のインスタンスを呼び出します。ただし、 の関数ではなく、 の関数が呼び出されます。ではなく、で関数を呼び出してほしい。どうすればいいですか?sub
super
super
sub
sub
super
#include <cstdio>
class super {
public:
void function() {
printf("Super\n");
}
};
class sub: public super {
public:
void function() {
printf("Sub\n");
}
};
int main() {
super *p;
p = new sub;
p->function();
return 0;
}