Polymorphism ialah ciri pengaturcaraan berorientasikan objek yang membolehkan objek berkelakuan berbeza pada masa jalanan, walaupun ia mempunyai kelas induk yang sama. Dalam C++, polimorfisme dicapai melalui fungsi maya dan pewarisan: Tentukan kelas asas dan kelas terbitan: kelas asas mengandungi fungsi maya, dan kelas terbitan mewarisi kelas asas dan mengatasi fungsi maya. Gunakan penunjuk atau rujukan: Simpan alamat objek kelas asas melalui penunjuk atau rujukan, dan akses objek kelas terbitan berbeza pada masa jalan. Memanggil melalui fungsi maya: Memanggil fungsi maya dalam kelas asas akan memanggil fungsi kelas terbitan yang diganti pada masa jalan. Kes praktikal: Dalam hierarki kelas bentuk, kelas Circle dan Rectangle mewarisi kelas Shape dan mengatasi fungsi maya kawasan(), perimeter() dan draw(), membolehkan bentuk ini digunakan dalam aplikasi praktikal polimorfisme dalam C++
Apakah itu polimorfisme?
Polymorphism ialah ciri dalam bahasa pengaturcaraan berorientasikan objek yang membolehkan objek berkelakuan berbeza pada masa jalanan, walaupun ia mempunyai kelas induk yang sama. Dalam C++, polimorfisme dicapai melalui fungsi maya dan pewarisan.
Bagaimana untuk menggunakan polimorfisme?
Tentukan kelas asas dan terbitan: Tentukan kelas asas yang mengandungi fungsi maya. Kelas terbitan mewarisi kelas asas dan mengatasi fungsi maya untuk menyediakan pelaksanaan yang berbeza.
class Shape {
public:
virtual double area() = 0;
virtual double perimeter() = 0;
virtual void draw() = 0;
};
class Circle : public Shape {
public:
... // 构造函数和数据成员
virtual double area() override;
virtual double perimeter() override;
virtual void draw() override;
};
class Rectangle : public Shape {
public:
... // 构造函数和数据成员
virtual double area() override;
virtual double perimeter() override;
virtual void draw() override;
};
vector<Shape*> shapes; shapes.push_back(new Circle(...)); shapes.push_back(new Rectangle(...)); for (auto& shape : shapes) { cout << "面积: " << shape->area() << endl; cout << "周长: " << shape->perimeter() << endl; shape->draw(); }
🎎
Kelebihan:Permudahkan kod dan kekalkan kelas asas dan kelas terbitan dipisahkan.
Tingkatkan kebolehskalaan dan kebolehselenggaraan kod.
Membenarkan pengendalian dinamik objek berbeza pada masa jalan.Atas ialah kandungan terperinci Bagaimana untuk menggunakan polimorfisme untuk mengendalikan perbezaan antara objek yang berbeza dalam C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!