Computer >> Máy Tính >  >> Lập trình >> C ++

Các hàm không thể quá tải trong C ++

Trong C ++, chúng ta có thể nạp chồng các hàm. Nhưng đôi khi quá tải không được thực hiện. Trong phần này, chúng ta sẽ xem những trường hợp khác nhau, trong đó chúng ta không thể quá tải các hàm.

  • Khi các chữ ký hàm giống nhau, chỉ có kiểu trả về khác nhau, thì chúng ta không thể nạp chồng hàm.

int my_func() {
   return 5;
}
char my_func() {
   return 'd';
}
  • Khi các hàm thành viên có cùng tên và cùng một danh sách tham số trong một lớp, thì chúng không thể được nạp chồng.

class My_Class{
   static void func(int x) {
      //Something
   }
   void func(int x) {
      //something
   }
};
  • Khi khai báo tham số, tham số đó chỉ khác nhau ở con trỏ * và mảng [] là giống nhau.

int my_func(int *arr) {
   //Do something
}
int my_func(int arr[]) {
   //do something
}
  • Khi khai báo tham số, tham số đó chỉ khác nhau khi có định tính không đổi hoặc biến động đều giống nhau.

int my_func(int x) {
   //Do something
}
int my_func(const int x) {
   //do something
}
  • Khi khai báo tham số, tham số đó chỉ khác nhau ở các đối số mặc định của chúng là tương đương.

int my_func(int a, int b) {
   //Do something
}
int my_func(int a, int b = 50) {
   //do something
}