วิธีการใช้งานฟังก์ชั่นการโอเวอร์โหลดและการแทนที่ใน C ++



บทความนี้จะแนะนำให้คุณรู้จักกับ Function Overloading And Overriding ใน C ++ ซึ่งเป็นสองแนวคิดที่สำคัญมากของ OOPS

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< 

เอาต์พุต

เอาท์พุท - ฟังก์ชั่นโอเวอร์โหลดและแทนที่ใน C ++ - Edureka

คำอธิบาย

ในโปรแกรมด้านบนเรามีสองฟังก์ชันในคลาสการเพิ่ม ทั้งสองชื่อเพิ่ม. หนึ่งมี 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

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด