Nạp chồng hàm trong C++

Trong C++, hai hàm có thể có cùng tên nếu số lượng và/hoặc loại đối số được truyền vào khác nhau

Các hàm này có cùng tên nhưng các đối số khác nhau được gọi là các hàm quá tải. Ví dụ

// same name different arguments
int test[] { }
int test[int a] { }
float test[double a] { }
int test[int a, double b] { }

Ở đây, cả 4 hàm đều là hàm quá tải

Lưu ý rằng kiểu trả về của cả 4 hàm này không giống nhau. Các hàm quá tải có thể có hoặc không có các kiểu trả về khác nhau nhưng chúng phải có các đối số khác nhau. Ví dụ,

// Error code
int test[int a] { }
double test[int b]{ }

Ở đây, cả hai hàm đều có cùng tên, cùng loại và cùng số đối số. Do đó, trình biên dịch sẽ báo lỗi

ví dụ 1. Quá tải bằng cách sử dụng các loại tham số khác nhau

// Program to compute absolute value
// Works for both int and float

#include 
using namespace std;

// function with float type parameter
float absolute[float var]{
    if [var < 0.0]
        var = -var;
    return var;
}

// function with int type parameter
int absolute[int var] {
     if [var < 0]
         var = -var;
    return var;
}

int main[] {
    
    // call function with int type parameter
    cout 

Chủ Đề