函數重載可用於實現多態性,即透過基底類別指標呼叫衍生類別方法,編譯器根據實際參數類型選擇重載版本。範例中,Animal 類別定義虛擬makeSound() 函數,Dog 和Cat 類別重寫函數,透過Animal* 指標呼叫makeSound() 時,編譯器會基於指向的物件類型呼叫對應的重寫版本,從而實現多態性性。
C 函式重載如何實作多型別
什麼是函式重載?
函數重載是一種將多個具有相同名稱但參數類型或數量不同的函數定義於相同作用域內的程式設計技術。
如何使用函數重載實現多態性?
多態性是一種允許透過基底類別指標或引用呼叫衍生類別方法的功能。 C 中函數重載與多型性的關係如下:
實戰範例
以下程式碼展示如何使用函數重載實作多態性:
#include <iostream> class Animal { public: virtual void makeSound() { // 声明为虚函数 std::cout << "Animal sound" << std::endl; } }; class Dog : public Animal { public: void makeSound() override { // 重写 makeSound() std::cout << "Woof woof" << std::endl; } }; class Cat : public Animal { public: void makeSound() override { // 重写 makeSound() std::cout << "Meow meow" << std::endl; } }; int main() { Animal* animalptr; // 基类指针 // 指向 Dog 对象 animalptr = new Dog(); animalptr->makeSound(); // 调用 Dog::makeSound() // 指向 Cat 对象 animalptr = new Cat(); animalptr->makeSound(); // 调用 Cat::makeSound() delete animalptr; return 0; }
輸出:
Woof woof Meow meow
以上是C++ 函式重載如何實現多態性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!