Lập trình C++ - Phương thức ảo
Phương thức ảo (virtual) trong C++
Phương thức ảo nằm trong lớp cơ sở chúng ta có thể định nghĩa lại trong lớp dẫn xuất. Nó được khai báo bằng từ khóa virtual
Phương thức ảo được sử dụng để thực hiện liên kết động (dynamic linkage) hoặc ràng buộc (binding) trong phương thức.
Ràng buộc hoặc liên kết động
Phương thức được gọi là ràng buộc được giải quyết trong thời gian chạy. Do đó trình biên dịch xác định loại đối tượng trong thời gian chạy, và sau đó liên kết các phương thức được gọi.
Ví dụ về phương ảo sau:
#include <iostream>
using namespace std;
class A
{
public:
virtual void display()
{
cout << "Lop co so duoc goi" << endl;
}
};
class B :public A
{
public:
void display()
{
cout << "Lop ke thua duoc goi" << endl;
}
};
int main()
{
A* a; //pointer of base class
B b; //object of derived class
a = &b;
a->display(); //Late Binding occurs
system("pause");
}
Kết quả:
Lop ke thua duoc goi