Mã sau là phương pháp thử nghiệm ràng buộc trễ() nhưng không nên kết buộc sớm? vì test() phương pháp không phải là ảo trong lớp B (nhưng trong lớp A), và chúng tôi đang sử dụng con trỏ của lớp B.chức năng ảo trong bố mẹ của lớp cha
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
}
'kiểm tra' là ảo trong tất cả các lớp ở đây; từ khóa 'virtual' không cần lặp lại. – MicroVirus