Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm ảo trong C++

Hàm ảo (virtual function) là hàm thành viên định nghĩa trong lớp cơ sở, có thể ghi đè trong lớp dẫn xuất. Khi gọi qua con trỏ lớp cơ sở, hàm ghi đè sẽ được gọi.

Ví dụ

#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;
    bptr->print(); // gọi hàm ảo
    bptr->show();  // gọi hàm không ảo
    return 0;
}

Đầu ra

print derived class
show base class