Polimorfisme dalam Templat C
Dalam C , polimorfisme ialah konsep asas yang membenarkan kelas terbitan mewarisi dan mengatasi kaedah kelas asasnya. Walau bagaimanapun, apabila ia berkaitan dengan templat, polimorfisme bertindak dengan cara yang tidak tradisional.
Isu Kovarian Templat
Pertimbangkan kod berikut:
<code class="cpp">class Interface { // ... }; class Foo : public Interface { // ... }; template <class T> class Container { // ... }; Bar(const Container<Interface>& bar){ // ... }</code>
Jika anda cuba membina Bar menggunakan Container
Reasoning Behind Invariance
Invarians templat wujud atas sebab yang penting. Pertimbangkan vektor templat kelas
Penyelesaian
Untuk menangani isu ini, beberapa penyelesaian tersedia:
Kesimpulan
Walaupun templat dalam C bukan kovarian, pelbagai penyelesaian wujud untuk memastikan keselamatan jenis dan keserasian antara kelas dan templat. Memahami alasan di sebalik invarian templat adalah penting untuk menulis kod C yang mantap dan betul.
Atas ialah kandungan terperinci Bagaimanakah Polimorfisme Berfungsi dengan Templat dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!