ฟังก์ชันเสมือน (Virtual functions) ใน C++ ใช้สร้างรายการของพอยน์เตอร์คลาสฐาน และเรียกเมธอดของคลาสลูกที่แตกต่างกันได้โดยไม่ต้องรู้ว่าวัตถุคลาสลูกเป็นประเภทใด ฟังก์ชันเสมือนจะถูกแก้ไขในขณะรันไทม์ (runtime)
ตัวอย่าง
#include <iostream>
using namespace std;
class B {
public:
virtual void s() { // ฟังก์ชันเสมือน
cout << " In Base \n";
}
};
class D : public B {
public:
void s() {
cout << "In Derived \n";
}
};
int main(void) {
D d; // วัตถุของคลาส D
B *b = &d; // ตัวแปรพอยน์เตอร์ประเภท B* ชี้ไปที่ d
b->s(); // พิมพ์ "D::s() called"
return 0;
}
ผลลัพธ์
In Derived