首頁 >後端開發 >C++ >C++ 中的函式重載與函式覆蓋

C++ 中的函式重載與函式覆蓋

WBOY
WBOY原創
2024-04-14 09:21:02424瀏覽

C 中,函數重載允許建立具有相同名稱但不同參數清單的函數。函數覆寫發生在衍生類別中,而衍生類別中定義的函數與基底類別中同名函數覆蓋基底類別的方法。

C++ 中的函数重载和函数覆盖

C 中的函數重載與函數覆寫

引言

##函數重載和函數覆蓋是C 中兩個重要的特性,它們允許以不同的方式建立具有相同名稱的函數。本教程將解釋這兩個概念並提供實戰案例。

函數重載

函數重載允許建立具有相同名稱但參數清單不同的多個函數。編譯器在呼叫函數時會根據參數清單決定要呼叫的正確函數。

語法

type function_name(parameter_list1);
type function_name(parameter_list2);

#實戰案例

以下程式碼示範了函數重載:

#include <iostream>

int sum(int a, int b) {
  return a + b;
}

double sum(double a, double b) {
  return a + b;
}

int main() {
  std::cout << sum(1, 2) << std::endl; // 输出:3
  std::cout << sum(1.5, 2.5) << std::endl; // 输出:4
}

函數覆寫

函數覆寫發生在衍生類別中,而衍生類別中定義的函數與基底類別中定義的函數具有相同的名稱和參數列表。衍生類別的方法將覆寫基底類別的方法。

語法

class DerivedClass : public BaseClass {
public:
  type function_name(parameter_list); // 覆盖 BaseClass 中的方法
};

#實戰案例

以下程式碼示範了函數覆蓋:

#include <iostream>

class Shape {
public:
  virtual double area() const = 0;
};

class Square : public Shape {
public:
  Square(double side_length) : side_length(side_length) {}
  double area() const override {
    return side_length * side_length;
  }

private:
  double side_length;
};

int main() {
  Square square(5);
  std::cout << square.area() << std::endl; // 输出:25
}

結論

函數重載和函數覆蓋是C 中的兩個強大特性,它們允許創建具有不同行為的具有相同名稱的函數。函數重載用於建立具有不同參數列表的函數,而函數覆寫用於在衍生類別中覆寫基底類別方法。

以上是C++ 中的函式重載與函式覆蓋的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn