30/09/2018, 16:09
Tại sao phải dùng hàm ảo (Virtual)?
Ví dụ:
#include <iostream>
using namespace std;
struct A{
virtual void skill(){
cout<< " Skill cua A
";
}
};
struct B : public A{
void skill(){
cout<< " Skill cua B
";
}
};
struct C : public A{
void skill(){
cout<< " Skill cua C
";
}
};
int main(){
A *pt1 = new A;
pt1->skill();
A *pt2 = new B;
pt2->skill();
A *pt3 = new C;
pt3->skill();
pause("sytems");
}
Bài liên quan
Hàm ảo để bắt buộc các class kế thừa từ Abstract class A, class B và C, phải implement lại method
skill
.Ý bạn muốn hỏi cú pháp hay mục đích ra đời của từ khóa
vỉtual
. Cú pháp thì a @ltd đã nói ở trên, còn mục đích sử dụng là để thể hiện tính đa hình trong hướng đối tượng, một phương thứcskill()
ởclass/struct
cha (struct A) có thể được xử lý khác nhau ở cácclass/struct
con (structB
,structC
)Mình có thể tạo thêm một struct D kế thừa public từ struct B,C được không nhỉ?