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

Virtual Function ใน C++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อเข้าใจ virtual function ใน C++

Virtual function คือฟังก์ชันสมาชิกที่ถูกกำหนดในคลาสฐาน (base class) และสามารถถูกกำหนดใหม่ (override) ในคลาสลูก (derived class) ได้ อีกทั้งเมื่อเรียกผ่าน pointer หรือ reference ของคลาสฐานที่ชี้ไปยังออบเจกต์คลาสลูก ฟังก์ชันที่ถูก override จะถูกเรียกใช้งาน

ตัวอย่างโค้ด

#include <iostream> 
using namespace std; 

class base {
public:
    virtual void print() {
        cout << "print base class" << endl;
    }
    void show() {
        cout << "show base class" << endl;
    }
};

class derived : public base {
public:
    void print() {
        cout << "print derived class" << endl;
    }
    void show() {
        cout << "show derived class" << endl;
    }
};

int main() {
    base* bptr;
    derived d;
    bptr = &d;
    // เรียก virtual function
    bptr->print();
    // เรียก non-virtual function
    bptr->show();
}

เอาต์พุต

print derived class
show base class