Tính đa hình là một đặc điểm chính của lập trình hướng đối tượng có nghĩa là có nhiều dạng. Điều này được chia thành đa hình thời gian biên dịch và đa hình thời gian chạy trong C ++.
Một ví dụ về tính đa hình thời gian biên dịch là quá tải hàm hoặc quá tải toán tử. Một ví dụ về tính đa hình thời gian chạy là ghi đè hàm.
Ví dụ về tính đa hình sử dụng nạp chồng hàm trong C ++ được đưa ra như sau.
Ví dụ
#include <iostream> using namespace std; class Example { public : void func(int a) { cout << "\nThe value of a: " << a; } void func(int a, int b) { cout << "\nThe value of a: " << a; cout << "\nThe value of b: " << b; } void func(char c) { cout << "\nThe value of c: " << c; } }; int main() { Example obj; cout<< "\nOne int value"; obj.func(5); cout<< "\nOne char value"; obj.func('A'); cout<< "\nTwo int values"; obj.func(7, 2); return 0; }
Đầu ra
Kết quả của chương trình trên như sau.
One int value The value of a: 5 One char value The value of c: A Two int values The value of a: 7 The value of b: 2
Bây giờ, chúng ta hãy hiểu chương trình trên.
Hàm thành viên func () trong lớp Ví dụ bị quá tải. Có 3 hàm func () với các tham số khác nhau có thể được chọn theo yêu cầu. Đoạn mã cho điều này được đưa ra như sau.
class Example { public : void func(int a) { cout << "\nThe value of a: " << a; } void func(int a, int b) { cout << "\nThe value of a: " << a; cout << "\nThe value of b: " << b; } void func(char c) { cout << "\nThe value of c: " << c; } };
Trong hàm main (), một đối tượng obj của lớp Ví dụ được tạo. Hàm func () được gọi với các đối số khác nhau để chứng minh quá trình nạp chồng hàm. Đoạn mã cho điều này được đưa ra như sau.
int main() { Example obj; cout<< "\nOne int value"; obj.func(5); cout<< "\nOne char value"; obj.func('A'); cout<< "\nTwo int values"; obj.func(7, 2); return 0; }