Tôi mới làm quen với tôi :) Từ những gì giảng viên của tôi đã nói trước đây, thứ tự của bảng ảo là quan trọng. Nhưng tôi không hiểu lý do cho điều đó !!?Thứ tự của bảng ảo có quan trọng không?
Với các mã tiếp theo:
class A
{
public:
A() {cout <<"1" << endl;};
A (const A& s) {cout << "2" << endl;}
~A() {cout << "3" << endl;}
void f1() {cout << "4" << endl; f2();}
virtual void f2() = 0;
virtual void f3() {cout << "5" << endl;}
};
class B : public A
{
public:
B() {cout << "6" << endl;}
B(const B& b) : A(b) {cout << "7" << endl;}
~B() {cout << "8" << endl;}
virtual void f1() {cout<<"9"<<endl;}
void f2() {cout<<"lO"<<endl; f4();}
virtual void f2(int i) {cout << "11" << endl;}
virtual void f4() {cout << "12" << endl; f3();}
};
Ông nói rằng thứ tự là:
A's vtable :
A::f2()
A::f3()
B's vtable :
B::f2()
A::f3()
B::f1()
B::f2(int)
B::f4()
Nhưng tôi không hiểu tại sao nó lại quan trọng? Ông nói rằng vtable là vô ích nếu nó là không theo thứ tự đúng của nó, bạn có thể vui lòng giải thích tại sao?
cảm ơn bạn rất nhiều !!! cho tất cả các bạn! –
@Ron_s đảm bảo bạn nhấp vào dấu kiểm ở trên cùng bên trái của câu trả lời này nếu nó trả lời câu hỏi của bạn. –