Polymorphism เป็นคุณลักษณะสำคัญของการเขียนโปรแกรมเชิงวัตถุซึ่งหมายถึงการมีหลายรูปแบบ ซึ่งแบ่งออกเป็น ความแตกต่างของเวลาคอมไพล์ และ ความแตกต่างของรันไทม์ ใน C++
ตัวอย่างของความแตกต่างของเวลาคอมไพล์คือฟังก์ชันโอเวอร์โหลดหรือโอเปอเรเตอร์โอเวอร์โหลด ตัวอย่างของความแตกต่างระหว่างรันไทม์คือการแทนที่ฟังก์ชัน
ตัวอย่างของ polymorphism โดยใช้ฟังก์ชันโอเวอร์โหลดในภาษา C++ มีดังนี้
ตัวอย่าง
#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; }
ผลลัพธ์
ผลลัพธ์ของโปรแกรมข้างต้นมีดังนี้
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
ตอนนี้ เรามาทำความเข้าใจโปรแกรมข้างต้นกัน
ฟังก์ชั่นสมาชิก func() ในคลาส Example โอเวอร์โหลด มีฟังก์ชัน func() 3 ฟังก์ชันพร้อมพารามิเตอร์ต่างๆ ที่สามารถเลือกได้ตามต้องการ ข้อมูลโค้ดสำหรับสิ่งนี้มีดังต่อไปนี้
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; } };
ในฟังก์ชัน main() วัตถุ obj ของคลาส Example จะถูกสร้างขึ้น ฟังก์ชัน func() ถูกเรียกโดยมีอาร์กิวเมนต์ต่างกันเพื่อแสดงฟังก์ชันโอเวอร์โหลด ข้อมูลโค้ดสำหรับสิ่งนี้มีดังต่อไปนี้
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; }