Следующий код - метод привязки последнего связывания(), но не должен ли он связываться раньше? потому что метод испытания() не является виртуальным в классе В (но в классе А), и мы используем указатель класса B.виртуальная функция в родительском классе родительского класса
class A{
public:
virtual void test(){
cout<<"test a";
}
};
class B : public A{
public:
void test(){
cout<<"Test b";
}
};
class C: public B{
public:
void test(){
cout<<"test c";
}
};
int main(){
B *bp;
C objc;
bp = &objc;
bp->test(); // test c
}
'test' является виртуальным во всех классах здесь; ключевое слово 'virtual' не нужно повторять. – MicroVirus