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

ฟังก์ชันเสมือน (Virtual Functions) ถูกใช้งานอย่างไรใน C++?

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