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

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


ในบทความนี้ เราจะเข้าใจความแตกต่างระหว่างการโอเวอร์โหลดฟังก์ชันและการแทนที่ฟังก์ชันใน C++

โอเวอร์โหลด

  • ไม่มีการใช้คีย์เวิร์ดในระหว่างการโอเวอร์โหลด

  • ต้นแบบจะแตกต่างกันไปตามจำนวนหรือประเภทของพารามิเตอร์เท่านั้น

  • มันเกิดขึ้นในช่วงเวลารวบรวม

  • ตัวสร้างสามารถโอเวอร์โหลดได้

  • ตัวทำลายล้างไม่สามารถโอเวอร์โหลดได้

  • สามารถใช้เพื่อให้มีผลผูกพันในช่วงต้น

  • เวอร์ชันของฟังก์ชันที่เรียกใช้ถูกกำหนดโดยจำนวนหรือประเภทของพารามิเตอร์ที่ใช้

  • ฟังก์ชันจะถูกกำหนดใหม่ด้วยชื่อเดียวกัน ตัวเลขหรือประเภทของพารามิเตอร์ต่างกัน

การเอาชนะ

  • ต้นแบบยังคงเหมือนเดิมตลอด

  • มันเกิดขึ้นที่รันไทม์

  • ไม่สามารถแทนที่ฟังก์ชันเสมือนได้

  • สามารถแทนที่ Destructor ได้

  • การลบล้างเรียกอีกอย่างว่าการรวมล่าช้า

  • ฟังก์ชันที่จะถูกแทนที่นำหน้าด้วยคีย์เวิร์ด "เสมือน" ในคลาสพื้นฐาน

  • ที่อยู่ของวัตถุของชั้นเรียนถูกกำหนดให้กับตัวชี้ซึ่งตัวชี้เรียกฟังก์ชัน

  • เมื่อกำหนดฟังก์ชันแล้ว จะมีคีย์เวิร์ด "เสมือน" นำหน้าในคลาสหลัก

  • ฟังก์ชั่นเดียวกันถูกกำหนดใหม่ในคลาสที่ได้รับโดยใช้คีย์เวิร์ด 'out'