Rumah >pembangunan bahagian belakang >C++ >Memahami dan menggunakan fungsi C++ membebankan dan menulis semula
Fungsi berlebihan dalam C++ membolehkan fungsi dengan nama yang sama ditakrifkan dalam kelas yang sama, tetapi dengan senarai parameter yang berbeza berlaku apabila fungsi dengan nama dan parameter yang sama seperti kelas induk ditakrifkan dalam subkelas, dan subkelas; fungsi akan menimpa fungsi kelas induk. Dalam contoh praktikal, fungsi terlampau beban digunakan untuk melaksanakan operasi penambahan untuk jenis data yang berbeza, dan fungsi yang ditindih digunakan untuk mengatasi fungsi maya dalam kelas induk untuk mengira luas bentuk yang berbeza.
C++ lebih memuatkan dan menulis semula: pemahaman mendalam dan aplikasi praktikal
Fungsi lebih muatan
Fungsi lebih muatan.membolehkan mentakrifkan berbilang fungsi dengan nama parameter yang sama
class MyClass { public: int add(int a, int b); double add(double a, double b); }; int MyClass::add(int a, int b) { return a + b; } double MyClass::add(double a, double b) { return a + b; }
Function overriding
Function overriding berlaku apabila fungsi ditakrifkan dalam kelas anak dengan nama yang sama dan senarai parameter yang sama dengan kelas induk. Fungsi subkelas akan mengatasi fungsi kelas induk.
class ParentClass { public: virtual int display() { return 10; } }; class ChildClass : public ParentClass { public: int display() { // 重写父类的 display() return 20; } };
Kes praktikal
Contoh fungsi terlampau beban:
#include <iostream> class Calculator { public: int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; } std::string add(std::string a, std::string b) { return a + b; } }; int main() { Calculator calc; std::cout << calc.add(1, 2) << std::endl; // 输出:3 std::cout << calc.add(1.5, 2.5) << std::endl; // 输出:4 std::cout << calc.add("Hello", "World") << std::endl; // 输出:HelloWorld return 0; }
Contoh fungsi yang ditulis semula:
#include <iostream> class Shape { public: virtual double area() = 0; // 纯虚函数(强制子类实现 area()) }; class Rectangle : public Shape { public: Rectangle(double width, double height) : m_width(width), m_height(height) {} double area() override { return m_width * m_height; } private: double m_width; double m_height; }; class Circle : public Shape { public: Circle(double radius) : m_radius(radius) {} double area() override { return 3.14 * m_radius * m_radius; } private: double m_radius; }; int main() { Rectangle rect(5, 10); Circle circle(5); std::cout << "Rectangle area: " << rect.area() << std::endl; // 输出:50 std::cout << "Circle area: " << circle.area() << std::endl; // 输出:78.5 return 0; }
Atas ialah kandungan terperinci Memahami dan menggunakan fungsi C++ membebankan dan menulis semula. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!