ฟังก์ชั่นโอเวอร์โหลดใน C ++
ในการเขียนโค้ดจริง บางครั้ง ฟังก์ชันการทำงาน เดียวกันอาจประมวลผลออบเจ็กต์ประเภทต่างๆ กัน ดังนั้นฟังก์ชันนี้จึงจำเป็นต้องได้รับการปรับปรุงใหม่ ซึ่งจะทำให้โค้ดซับซ้อนมากขึ้น เพื่อแก้ไขปัญหานี้ C++ รองรับฟังก์ชันโอเวอร์โหลดเพื่อแก้ไขปัญหานี้ .
ตัวอย่างเช่น สำหรับปัญหาผลรวมทางคณิตศาสตร์ คุณต้องปรับแต่งฟังก์ชันเพื่อรับข้อมูลขาเข้าและสรุปผล แต่ในฐานะโมดูลอิสระ คุณจะทราบได้อย่างไรว่าข้อมูลประเภทใดที่ผู้โทรส่งเข้ามา อาจเป็นข้อมูลจำนวนเต็ม แน่นอน อาจเป็นข้อมูลชนิดจุดลอยตัว หรืออาจเป็นข้อมูลจำนวนเต็มและชนิดจุดลอยตัว (ยังไม่ทราบว่าชนิดใดเป็นชนิดจำนวนเต็ม และชนิดใดเป็นชนิดจุดลอยตัว) และ แนวทางที่ครอบคลุมคือการใช้งานต่างๆ จะต้องกำหนดฟังก์ชันพารามิเตอร์อย่างเป็นทางการแต่ละประเภท นั่นคือ int สองประเภท สอง double type int แรก และ double ที่สอง e และ int ตัวแรกและตัวที่สอง กำหนดสี่ฟังก์ชันที่จะนำไปใช้ ตัวอย่างเช่น ชื่อคือ: Add_double_double(), Add_int_double(), Add_int_int(), Add_double_int() ฯลฯ สิ่งนี้ดูไม่สับสนใช่ไหม ?
จากนั้น การเกิดขึ้นของฟังก์ชันโอเวอร์โหลดใน C++ จะช่วยแก้ปัญหานี้ได้ดีมาก ฟังก์ชันโอเวอร์โหลด คือฟังก์ชันตั้งแต่ 2 ฟังก์ชันขึ้นไปที่มีชื่อฟังก์ชันเดียวกันแต่มีประเภทหรือตัวเลขของพารามิเตอร์ต่างกัน ฟังก์ชันที่เหมาะสมที่สุดจะถูกเลือกโดยอัตโนมัติ สำหรับการโทรเข้าสาย และการเลือกจะถูกนำมาใช้โดยอัตโนมัติ
ตัวอย่างเช่น ในตัวอย่างการบวกเมื่อสักครู่นี้:
#include<iostream>usingnamespacestd;intadd(inta,intb){cout<<(int,int)t;returna+b;}doubleadd(doublea,doubleb){cout<<(doble,double)t;returna+ b ;}doubleadd(doublea,intb){cout<<(double,int )t;returna+b;}doubleadd(inta,doubleb){cout<<(int,double)t;returna+b;}intmain(){cout<<เพิ่ม(2 ,3)<<endl;cout<<เพิ่ม(2.9,15.3)<<endl;cout<<เพิ่ม(10,9.9)<<endl;cout<<เพิ่ม(11.5,5)<<endl;return0;}
ผลการวิ่งมีดังนี้:
โปรดอ่านโค้ดอย่างละเอียด เพื่อยืนยันว่าฟังก์ชันใดถูกดำเนินการ เราจะเพิ่มคำสั่ง cout output ภายในฟังก์ชันเพื่อแยกแยะว่าฟังก์ชันใดถูกเรียกใช้
ทุกคนต้องทำการทดลองด้วยตัวเองเพื่อทำความเข้าใจโค้ด!