อย่างที่เราทราบดีว่าฟังก์ชั่นโอเวอร์โหลดเป็นหนึ่งในคุณสมบัติหลักของภาษาเชิงวัตถุ เราสามารถใช้ชื่อฟังก์ชันเดียวกันได้ ซึ่งมีชุดพารามิเตอร์ต่างกัน ที่นี่เราจะมาดูวิธีการโอเวอร์โหลดคอนสตรัคเตอร์ของคลาส C ++ การโอเวอร์โหลดคอนสตรัคเตอร์มีแนวคิดที่สำคัญบางประการ
- คอนสตรัคเตอร์ที่โอเวอร์โหลดต้องมีชื่อเดียวกันและจำนวนอาร์กิวเมนต์ต่างกัน
- ตัวสร้างถูกเรียกตามจำนวนและประเภทของอาร์กิวเมนต์จะถูกส่งต่อ
- เราต้องส่งผ่านอาร์กิวเมนต์ขณะสร้างวัตถุ มิฉะนั้น ตัวสร้างจะไม่เข้าใจว่าตัวสร้างใดจะถูกเรียก
ตัวอย่าง
#include <iostream> using namespace std; class Rect{ private: int area; public: Rect(){ area = 0; } Rect(int a, int b){ area = a * b; } void display(){ cout << "The area is: " << area << endl; } }; main(){ Rect r1; Rect r2(2, 6); r1.display(); r2.display(); }
ผลลัพธ์
The area is: 0 The area is: 12