Rumah > Artikel > pembangunan bahagian belakang > Spesifikasi standard bahasa C++ untuk kelebihan beban dan penulisan semula fungsi
Lebihan beban fungsi membolehkan anda mentakrifkan fungsi dengan nama yang sama dalam skop yang sama, tetapi memerlukan senarai parameter yang berbeza manakala menimpa fungsi membolehkan anda mentakrifkan fungsi dengan nama dan senarai parameter yang sama seperti kelas asas dalam kelas terbitan; memerlukan kata kunci ganti, jenis pulangan dan Senarai parameter adalah sama persis dengan fungsi kelas asas. Contoh overloading: print(int), print(double); contoh overwriting: foo() dalam kelas Derived mengatasi foo() dalam kelas Base.
Spesifikasi standard bahasa C++ untuk lebihan fungsi dan menulis semula
Fungsi lebih muatan
Lebihan memuatkan membenarkan berbilang fungsi ditakrifkan dengan nama yang sama dalam skop senarai yang sama, tetapi mesti berbeza dalam skop senarai. Standard bahasa C++ memerlukan lebihan fungsi untuk mengikut spesifikasi berikut:
Contoh:
void print(int x); void print(double x);
Fungsi mengatasi
Mengatasi membenarkan mentakrifkan fungsi dalam kelas terbitan dengan nama dan senarai parameter yang sama seperti dalam kelas asas. Standard bahasa C++ memerlukan penulisan semula fungsi untuk mengikut spesifikasi berikut:
Contoh:
class Base { public: virtual void foo(); }; class Derived : public Base { public: override void foo() override; // 重写基类中的 foo };
Kes praktikal
Fungsi berlebihan:
#include <iostream> using namespace std; void print(int x) { cout << "int: " << x << endl; } void print(double x) { cout << "double: " << x << endl; } int main() { print(10); // 调用 int 版本的 print print(3.14); // 调用 double 版本的 print return 0; }
Fungsi penulisan semula:
#include <iostream> using namespace std; class Shape { public: virtual void draw() = 0; // 纯虚函数 }; class Rectangle : public Shape { public: void draw() override { cout << "Drawing a rectangle" << endl; } }; int main() { Rectangle r; r.draw(); // 调用 Rectangle 类中的重写函数 return 0; }
Atas ialah kandungan terperinci Spesifikasi standard bahasa C++ untuk kelebihan beban dan penulisan semula fungsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!