Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Nạp chồng hàm tạo (Constructor Overloading) trong C++

Nạp chồng hàm tạo cho phép một lớp có nhiều hàm tạo với danh sách tham số khác nhau (số lượng, kiểu dữ liệu, thứ tự). Trình biên dịch chọn hàm tạo phù hợp dựa trên đối số truyền vào khi tạo đối tượng.

Quy tắc

  • Cùng tên lớp, khác danh sách tham số.
  • Không thể nạp chồng chỉ khác kiểu trả về (hàm tạo không có kiểu trả về).
  • Có thể dùng tham số mặc định để giảm số lượng hàm tạo.

Ví dụ minh họa

#include <iostream>
using namespace std;

class Rect {
    int area;
public:
    // Hàm tạo mặc định
    Rect() : area(0) {}
    // Hàm tạo có 2 tham số
    Rect(int a, int b) : area(a * b) {}
    // Hàm tạo có 1 tham số (vuông)
    explicit Rect(int side) : area(side * side) {}

    void display() const {
        cout << "Dien tich: " << area << endl;
    }
};

int main() {
    Rect r1;         // gọi Rect()
    Rect r2(2, 6);   // gọi Rect(int, int)
    Rect r3(5);      // gọi Rect(int)
    r1.display();    // 0
    r2.display();    // 12
    r3.display();    // 25
    return 0;
}

Kết quả

Dien tich: 0
Dien tich: 12
Dien tich: 25