Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk melaksanakan polimorfisme dalam reka bentuk kelas C++?
Polymorphism membolehkan kelas terbitan mempunyai gelagat berbeza sambil berkongsi antara muka yang sama Langkah-langkah untuk mencapai ini termasuk: mencipta kelas asas, kelas terbitan, fungsi maya dan menggunakan penunjuk kelas asas Kod sampel menunjukkan cara menggunakan hierarki kelas bentuk ( Shape , Segi empat tepat, Bulatan) untuk melaksanakan polimorfisme dan mengira jumlah luas bentuk yang berbeza.
Reka bentuk kelas untuk melaksanakan polimorfisme dalam C++
Apakah itu polimorfisme?
Polymorphism membenarkan kelas terbitan dan kelas asas mempunyai gelagat berbeza sambil berkongsi antara muka yang sama. Ia menyediakan cara yang elegan untuk mencipta koleksi objek dengan gelagat yang serupa tetapi pelaksanaan yang berbeza.
Langkah untuk melaksanakan polimorfisme:
Kes praktikal:
Pertimbangkan hierarki kelas bentuk:
class Shape { public: virtual double area() = 0; // 纯虚函数(必须在派生类中重新定义) }; class Rectangle : public Shape { public: Rectangle(double width, double height) : width_(width), height_(height) {} double area() override { return width_ * height_; } private: double width_; double height_; }; class Circle : public Shape { public: Circle(double radius) : radius_(radius) {} double area() override { return 3.14 * radius_ * radius_; } private: double radius_; };
Penggunaan:
// 创建不同形状的集合 vector<Shape*> shapes; shapes.push_back(new Rectangle(2.0, 3.0)); shapes.push_back(new Circle(4.0)); // 使用基类指针计算总面积 double totalArea = 0.0; for (Shape* shape : shapes) { totalArea += shape->area(); // 使用多态性动态绑定函数调用 } // 输出总面积 cout << "Total area: " << totalArea << endl;
Output: reee
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan polimorfisme dalam reka bentuk kelas C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!