ฟังก์ชันเสมือนใน C ++ ใช้เพื่อสร้างรายการพอยน์เตอร์คลาสฐานและเมธอดการเรียกของคลาสที่ได้รับมาโดยที่ไม่รู้ด้วยซ้ำถึงชนิดของอ็อบเจ็กต์คลาสที่ได้รับ ฟังก์ชันเสมือนได้รับการแก้ไขล่าช้า ณ รันไทม์
ถ้าฟังก์ชันเสมือนในคลาสฐานประกาศเป็นฟังก์ชันสมาชิก จะกลายเป็นเสมือนในทุกคลาสที่ได้รับจากคลาสพื้นฐานนั้น ดังนั้น การใช้คำหลักเสมือนจึงไม่จำเป็นในคลาสที่ได้รับในขณะที่ประกาศเวอร์ชันที่กำหนดไว้ใหม่ของฟังก์ชันคลาสฐานเสมือน
โค้ดตัวอย่าง
#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; // An object of class D B *b= &d; // A pointer of type B* pointing to d b->s(); // prints"D::s() called" return 0; }
ผลลัพธ์
In Derived