อย่างที่เราทราบดีว่าฟังก์ชั่นโอเวอร์โหลดเป็นหนึ่งในคุณสมบัติหลักของภาษาเชิงวัตถุ เราสามารถใช้ชื่อฟังก์ชันเดียวกันได้ ซึ่งมีชุดพารามิเตอร์ต่างกัน ที่นี่เราจะมาดูวิธีการโอเวอร์โหลดคอนสตรัคเตอร์ของคลาส 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