ฟังก์ชันเสมือนล้วนเป็นฟังก์ชันเสมือนใน C++ ซึ่งเราไม่จำเป็นต้องเขียนคำจำกัดความของฟังก์ชันใดๆ และมีเพียงเราเท่านั้นที่ต้องประกาศ มันถูกประกาศโดยการกำหนด 0 ในการประกาศ
คลาสนามธรรมคือคลาสใน C++ ซึ่งมีฟังก์ชันเสมือนบริสุทธิ์อย่างน้อยหนึ่งฟังก์ชัน
-
คลาสนามธรรมสามารถมีฟังก์ชันและตัวแปรปกติพร้อมกับฟังก์ชันเสมือนที่บริสุทธิ์
-
ไม่สามารถสร้างคลาสนามธรรมได้ แต่สามารถสร้างพอยน์เตอร์และการอ้างอิงประเภทคลาสนามธรรมได้
-
คลาสนามธรรมส่วนใหญ่จะใช้สำหรับ Upcasting เพื่อให้คลาสที่ได้รับสามารถใช้อินเทอร์เฟซได้
-
หากคลาสนามธรรมได้รับคลาส พวกเขาต้องใช้ฟังก์ชันเสมือนล้วนๆ ทั้งหมด มิฉะนั้นจะกลายเป็นคลาสนามธรรมด้วย
-
เราไม่สามารถสร้างวัตถุของคลาสนามธรรมได้ในขณะที่เราจองสล็อตสำหรับฟังก์ชันเสมือนที่แท้จริงใน Vtable แต่เราไม่ได้ใส่ที่อยู่ใดๆ ดังนั้น Vtable จะยังคงไม่สมบูรณ์
โค้ดตัวอย่าง
#include<iostream> using namespace std; class B { public: virtual void s() = 0; // Pure Virtual Function }; class D:public B { public: void s() { cout << "Virtual Function in Derived class\n"; } }; int main() { B *b; D dobj; b = &dobj; b->s(); }
ผลลัพธ์
Virtual Function in Derived class