ในบทความนี้ เราจะเข้าใจความแตกต่างระหว่างการโอเวอร์โหลดฟังก์ชันและการแทนที่ฟังก์ชันใน C++
โอเวอร์โหลด
-
ไม่มีการใช้คีย์เวิร์ดในระหว่างการโอเวอร์โหลด
-
ต้นแบบจะแตกต่างกันไปตามจำนวนหรือประเภทของพารามิเตอร์เท่านั้น
-
มันเกิดขึ้นในช่วงเวลารวบรวม
-
ตัวสร้างสามารถโอเวอร์โหลดได้
-
ตัวทำลายล้างไม่สามารถโอเวอร์โหลดได้
-
สามารถใช้เพื่อให้มีผลผูกพันในช่วงต้น
-
เวอร์ชันของฟังก์ชันที่เรียกใช้ถูกกำหนดโดยจำนวนหรือประเภทของพารามิเตอร์ที่ใช้
-
ฟังก์ชันจะถูกกำหนดใหม่ด้วยชื่อเดียวกัน ตัวเลขหรือประเภทของพารามิเตอร์ต่างกัน
การเอาชนะ
-
ต้นแบบยังคงเหมือนเดิมตลอด
-
มันเกิดขึ้นที่รันไทม์
-
ไม่สามารถแทนที่ฟังก์ชันเสมือนได้
-
สามารถแทนที่ Destructor ได้
-
การลบล้างเรียกอีกอย่างว่าการรวมล่าช้า
-
ฟังก์ชันที่จะถูกแทนที่นำหน้าด้วยคีย์เวิร์ด "เสมือน" ในคลาสพื้นฐาน
-
ที่อยู่ของวัตถุของชั้นเรียนถูกกำหนดให้กับตัวชี้ซึ่งตัวชี้เรียกฟังก์ชัน
-
เมื่อกำหนดฟังก์ชันแล้ว จะมีคีย์เวิร์ด "เสมือน" นำหน้าในคลาสหลัก
-
ฟังก์ชั่นเดียวกันถูกกำหนดใหม่ในคลาสที่ได้รับโดยใช้คีย์เวิร์ด 'out'