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

ฟังก์ชันโอเวอร์โหลดและส่งคืนประเภทใน C++


คุณสามารถมีคำจำกัดความได้หลายแบบสำหรับชื่อฟังก์ชันเดียวกันในขอบเขตเดียวกัน คำจำกัดความของฟังก์ชันต้องแตกต่างกันตามประเภทและ/หรือจำนวนอาร์กิวเมนต์ในรายการอาร์กิวเมนต์ คุณไม่สามารถโอเวอร์โหลดการประกาศฟังก์ชันที่แตกต่างกันตามประเภทการส่งคืนเท่านั้น

ฟังก์ชันโอเวอร์โหลดนั้นเป็นพื้นฐานของเวลาคอมไพล์พหุสัณฐาน จะตรวจสอบลายเซ็นฟังก์ชัน หากลายเซ็นไม่เหมือนกันก็สามารถโอเวอร์โหลดได้ ชนิดส่งคืนของฟังก์ชันไม่สร้างผลกระทบใด ๆ ต่อการโอเวอร์โหลดฟังก์ชัน ลายเซ็นฟังก์ชันเดียวกันกับประเภทการส่งคืนที่แตกต่างกันจะไม่โอเวอร์โหลด

ต่อไปนี้เป็นตัวอย่างที่ใช้ฟังก์ชันเดียวกัน print() เพื่อพิมพ์ข้อมูลประเภทต่างๆ

โค้ดตัวอย่าง

#include <iostream>
using namespace std;
class printData {
   public:
      void print(int i) {
         cout << "Printing int: " << i << endl;
      }
      void print(double f) {
         cout << "Printing float: " << f << endl;
      }
      void print(char* c) {
         cout << "Printing character: " << c << endl;
      }
};
int main(void) {
   printData pd;
   pd.print(5); // Call print to print integer
   pd.print(500.263); // Call print to print float
   pd.print("Hello C++"); // Call print to print character
   return 0;
}

ผลลัพธ์

Printing int: 5
Printing float: 500.263
Printing character: Hello C++