Ví dụ

#include <iostream>
using namespace std;

int mayTinh(int x, int y) {
  return x + y;
}

int mayTinh(int x) {
  return x * x;
}

double mayTinh(double x, double y) {
  return x + y;
}

int main() {
  int a = mayTinh(8, 4);
  int b = mayTinh(8, 12);
  double c = mayTinh(4.3, 6.26);
  cout << "Kieu int, 2 tham so: " << a << "\n";
  cout << "Kieu int, 1 tham so: " << b << "\n";
  cout << "Kieu double, 2 tham so: " << c;
  return 0;
}

Kết quả:

Kieu int, 2 tham so: 12
Kieu int, 1 tham so: 20
Kieu double, 2 tham so: 10.56

Ở ví dụ trên, các em có thể thấy hàm mayTinh được khai báo đến 3 lần

  1. lần 1: có 2 tham số xy kiểu int
  2. lần 2: có 1 tham số x kiểu int, khác với lần 1 về số lượng tham số
  3. lần 3: có 2 tham số xy kiểu double, khác với lần 1 ở kiểu dữ liệu

Với ví dụ trên, khi không dùng nạp chồng, các em có thể viết lại như sau

#include <iostream>
using namespace std;

int mayTinh1(int x, int y) {
  return x + y;
}

int mayTinh2(int x) {
  return x * x;
}

double mayTinh3(double x, double y) {
  return x + y;
}

int main() {
  int a = mayTinh1(8, 4);
  int b = mayTinh2(8, 12);
  double c = mayTinh3(4.3, 6.26);
  cout << "Kieu int, 2 tham so: " << a << "\n";
  cout << "Kieu int, 1 tham so: " << b << "\n";
  cout << "Kieu double, 2 tham so: " << c;
  return 0;
}