C ++ คือไฟล์ ในธรรมชาติและมีคุณสมบัติต่างๆ ในเซสชั่นนี้เราจะพูดถึงวิธีการใช้ Function Overloading และ Function Overriding ใน C ++
คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้
ดำเนินการต่อในบทความนี้เกี่ยวกับการทำงานมากเกินไปและการแทนที่ใน C ++
ฟังก์ชันโอเวอร์โหลด
ฟังก์ชันที่มีชื่อเดียวกัน แต่อนุญาตให้ใช้พารามิเตอร์ต่างกันใน C ++ และถูกเรียกใช้ ฟังก์ชันโอเวอร์โหลด . เรียกอีกอย่างว่า Polymorphism เวลาคอมไพล์
ตัวอย่างเช่น:
ตารางภายในตาราง html
ผลรวม (int a, float b) ผลรวม (int a, int b) ผลรวม (int a, int b, int c)
ที่นี่มีฟังก์ชันสามอย่างที่มีชื่อเดียวกัน แต่สิ่งเดียวที่ทำให้พวกเขาแตกต่างคือพารามิเตอร์ที่แตกต่างกันในแต่ละฟังก์ชัน ดังนั้นขึ้นอยู่กับพารามิเตอร์ที่ส่งผ่านฟังก์ชันจึงถูกเรียกใช้
หากประเภทการส่งคืนของฟังก์ชันแตกต่างกันจะถือว่าไม่ถูกต้อง
ดำเนินการต่อในบทความนี้เกี่ยวกับการทำงานมากเกินไปและการแทนที่ใน C ++
โค้ดตัวอย่างสำหรับการทำงานเกินกำลังโหลด
รวมการใช้เนมสเปซคลาส std การเพิ่ม {public: int add (int n1, int n2) {return n1 + n2} int add (int n1, int n2, int n3) {return n1 + n2}} int main (void) {การเพิ่ม cout<เอาต์พุต
คำอธิบาย
ในโปรแกรมด้านบนเรามีสองฟังก์ชันในคลาสการเพิ่ม ทั้งสองชื่อเพิ่ม. หนึ่งมี 2 พารามิเตอร์และอีกตัวมี 3 พารามิเตอร์
ในฟังก์ชันหลักเราสร้างออบเจ็กต์ของการเพิ่มคลาสที่เรียกว่า a. เราเรียกฟังก์ชัน add ที่มีพารามิเตอร์ 2 และ 3 ตามลำดับและฟังก์ชัน add จะถูกเรียกและทำการเพิ่ม
จาวาสคริปต์คืออะไรนี่คือวิธีที่ฟังก์ชันโอเวอร์โหลดเกิดขึ้น
ดำเนินการต่อในบทความนี้เกี่ยวกับการทำงานมากเกินไปและการแทนที่ใน C ++
การแทนที่ฟังก์ชัน
เมื่อคลาสที่ได้รับมีฟังก์ชันที่มีชื่อเดียวกันกับฟังก์ชันของคลาสพื้นฐานจะถูกเรียกใช้ การแทนที่ฟังก์ชัน ฟังก์ชันทั้งสองต้องมีพารามิเตอร์เดียวกันในทั้งสองคลาส
โค้ดตัวอย่างสำหรับการแทนที่ฟังก์ชัน
#include โดยใช้เนมสเปซคลาส std BaseClass {public: void disp () {cout<<'Parent Class Function' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Child Class Function' } } int main() { DerivedClass obj = DerivedClass() obj.disp() return 0 }เอาท์พุต:
คำอธิบาย:
ในโปรแกรมด้านบนเราจะแสดงฟังก์ชันพื้นฐานโดยมีชื่อเดียวกันในคลาสที่ได้รับและฐาน ที่นี่อ็อบเจ็กต์ถูกสร้างขึ้นจากคลาสที่ได้รับดังนั้นเมื่อเราเรียกการแสดงเฉพาะอ็อบเจ็กต์คลาสลูกจะปรากฏขึ้น
ดำเนินการต่อในบทความนี้เกี่ยวกับการทำงานมากเกินไปและการแทนที่ใน C ++
คำสั่งให้ดำเนินการลบล้าง
พิจารณารหัส:
#include โดยใช้เนมสเปซคลาส std BaseClass {public: void disp () {cout<<'Function of Parent Class' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Function of Child Class' } } int main() { BaseClass obj = DerivedClass() obj.disp() return 0 }เอาท์พุต:
คำอธิบาย:
ในโปรแกรมด้านบนแสดงฟังก์ชันพื้นฐานที่มีชื่อเดียวกันในคลาสที่ได้รับและฐาน สิ่งเดียวที่แตกต่างจากโปรแกรมก่อนหน้านี้คือ เราสร้างวัตถุของคลาสลูก อ็อบเจ็กต์คลาสลูกได้รับการอ้างอิงของคลาสพื้นฐาน ซึ่งสามารถทำได้โดยใช้วิธีอื่น
ไวยากรณ์
Parent_class_name :: ฟังก์ชัน ()ในตัวอย่างข้างต้นเราใช้เป็น
init ใน python คืออะไรBaseClass :: disp ()นี่เป็นอีกวิธีหนึ่งในการลบล้าง
ฟังก์ชัน Overloading VS ฟังก์ชัน Overriding
ฟังก์ชั่นเกินพิกัด ฟังก์ชันแทนที่ ขอบเขตก็เหมือนกัน ขอบเขตแตกต่างกัน ลายเซ็นต้องแตกต่างกัน (เช่นพารามิเตอร์) ลายเซ็นต้องเหมือนกัน จำนวนฟังก์ชันที่มากเกินไปที่เป็นไปได้ มีฟังก์ชันการลบล้างเพียงฟังก์ชันเดียวเท่านั้น อาจเกิดขึ้นโดยไม่ได้รับมรดก ส่วนใหญ่เกิดจากการถ่ายทอดทางพันธุกรรม ดังนั้นเราจึงมาถึงตอนท้ายของบทความนี้เกี่ยวกับ 'Function Overloading and Overriding in C ++' หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด