Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ฟังก์ชันเสมือนในคลาสที่ได้รับใน C++


ฟังก์ชันเสมือนใน 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