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

ตัวอย่าง Polymorphism ใน C++


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;
}