classsubから継承するクラスがありsuperます。どちらも関数を定義しますvoid function()(したがって、 の関数は の関数をsubオーバーライドしますsuper)。ポインターを作成し、superそれを の新しいインスタンスに割り当てますsub。次に、ポインターを介して function()のインスタンスを呼び出します。ただし、 の関数ではなく、 の関数が呼び出されます。ではなく、で関数を呼び出してほしい。どうすればいいですか?subsupersupersubsubsuper
#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;
}