Polymorphism membolehkan anda menulis kod yang boleh berfungsi dengan jenis data yang berbeza tanpa menyatakan setiap jenis secara jelas. C menyediakan berbilang mekanisme untuk mencapai polimorfisme:
Lebih muatan:
void f(int x); // overload for int void f(double x); // overload for double
Templat:
template <typename T> void f(T& x); // template for any type T
Maya Penghantaran:
struct Base { virtual void g() = 0; // pure virtual function }; struct X : Base { virtual void g() { // overrides g() for X // ... } }; // ... void h(Base& b) { b.g(); // run-time polymorphic call }
Polymorfisme Ad-hoc
Digunakan apabila bilangan jenis yang disokong adalah terhad dan mesti dinyatakan dengan jelas.
Parametrik Polimorfisme
Digunakan apabila kod ditulis secara umum tanpa menyatakan jenis tertentu, membenarkan ia berfungsi dengan mana-mana jenis baharu.
Oleh Masa:
Mengikut Jenis Disokong:
Dalam Standard C, "polimorfik" hanya merujuk kepada polimorfisme masa larian menggunakan penghantaran maya. Dalam sains pengkomputeran umum, "polimorfik" mempunyai makna yang lebih luas.
Polymorphism dalam C membolehkan penciptaan boleh diguna semula, kod jenis-agnostik yang boleh digunakan pada pelbagai jenis data. Dengan memahami pelbagai jenis dan mekanisme yang tersedia, anda boleh memanfaatkan polimorfisme dengan berkesan untuk meningkatkan fleksibiliti dan kecekapan kod anda.
Atas ialah kandungan terperinci Apakah Jenis dan Mekanisme Polimorfisme yang Berbeza dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!