ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อเข้าใจ virtual function ใน C++
Virtual function คือฟังก์ชันสมาชิกที่ถูกกำหนดในคลาสฐาน (base class) และสามารถถูกกำหนดใหม่ (override) ในคลาสลูก (derived class) ได้ อีกทั้งเมื่อเรียกผ่าน pointer หรือ reference ของคลาสฐานที่ชี้ไปยังออบเจกต์คลาสลูก ฟังก์ชันที่ถูก override จะถูกเรียกใช้งาน
ตัวอย่างโค้ด
#include <iostream>
using namespace std;
class base {
public:
virtual void print() {
cout << "print base class" << endl;
}
void show() {
cout << "show base class" << endl;
}
};
class derived : public base {
public:
void print() {
cout << "print derived class" << endl;
}
void show() {
cout << "show derived class" << endl;
}
};
int main() {
base* bptr;
derived d;
bptr = &d;
// เรียก virtual function
bptr->print();
// เรียก non-virtual function
bptr->show();
}
เอาต์พุต
print derived class show base class