答案: C 中的函數重載和函數虛擬函數允許開發者建立具有相同名稱但不同參數列表或行為的函數。詳細描述:函數重載: 建立具有相同名稱但不同參數清單的函數,用於在不同情況下使用具有相似功能的函數。函數虛擬函數: 在衍生類別中覆寫基底類別的函數,用於多態性,允許衍生類別提供與基底類別不同的實作。
C 中的函數重載與函數虛擬函數
函數重載
函數重載可讓您建立具有相同名稱但具有不同參數清單的多個函數。這對於需要在不同的情況下使用具有相似功能的函數非常有用。
語法:
ret_type function_name(parameter_list_1); ret_type function_name(parameter_list_2); ...
範例:
void printInfo(int x) { cout << "int: " << x << endl; } void printInfo(double x) { cout << "double: " << x << endl; } int main() { int a = 10; double b = 3.14; printInfo(a); // calls printInfo(int) printInfo(b); // calls printInfo(double) return 0; }
函數虛函數
函數虛函數可讓您在衍生類別中覆寫基底類別的函數。這對於多態性和物件導向程式設計非常有用,因為它允許您為衍生類別提供與基底類別不同的實作。
語法:
在基底類別中宣告函數時使用關鍵字 virtual
。
virtual ret_type function_name(parameter_list) const = 0;
在衍生類別中重寫函數時使用關鍵字 override
。
override ret_type function_name(parameter_list) const { /* implementation */ }
範例:
class Shape { public: virtual double area() const = 0; // pure virtual function }; class Circle : public Shape { public: double radius; Circle(double radius) : radius(radius) {} override double area() const { return 3.14 * radius * radius; } }; class Square : public Shape { public: double side; Square(double side) : side(side) {} override double area() const { return side * side; } }; int main() { Shape* s1 = new Circle(5); Shape* s2 = new Square(10); cout << "Area of circle: " << s1->area() << endl; cout << "Area of square: " << s2->area() << endl; return 0; }
#注意事項:
virtual
的函數。 virtual
和 = 0
)必須在衍生類別中重寫,否則衍生類別將成為抽象類別。 以上是C++ 函式重載與函式虛函式的詳細內容。更多資訊請關注PHP中文網其他相關文章!