Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah kelebihan fungsi C++ mencapai polimorfisme?
Pembebanan fungsi boleh digunakan untuk mencapai polimorfisme, iaitu, memanggil kaedah kelas terbitan melalui penuding kelas asas, dan pengkompil memilih versi terlebih beban berdasarkan jenis parameter sebenar. Dalam contoh, kelas Animal mentakrifkan fungsi makeSound() maya dan kelas Dog dan Cat mengatasi fungsi ini Apabila makeSound() dipanggil melalui penunjuk Animal*, pengkompil akan memanggil versi ganti yang sepadan berdasarkan objek yang ditunjuk. jenis, dengan itu mencapai polimorfisme seks.
Bagaimanakah lebihan fungsi C++ mencapai polimorfisme
Apakah fungsi lebihan beban?
Function overloading ialah teknik pengaturcaraan yang mentakrifkan berbilang fungsi dengan nama yang sama tetapi jenis atau nombor parameter berbeza dalam skop yang sama.
Bagaimana untuk menggunakan lebihan fungsi untuk mencapai polimorfisme?
Polymorphism ialah ciri yang membenarkan memanggil kaedah kelas terbitan melalui penuding atau rujukan kelas asas. Hubungan antara lebihan fungsi dan polimorfisme dalam C++ adalah seperti berikut:
Contoh praktikal
Kod berikut menunjukkan cara menggunakan lebihan fungsi untuk mencapai polimorfisme:
#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; }
Output:
Woof woof Meow meow
Atas ialah kandungan terperinci Bagaimanakah kelebihan fungsi C++ mencapai polimorfisme?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!