Menggunakan "super" dalam C
Pengenalan
Dalam C , penggunaan simpulan bahasa "typedef super" untuk membolehkan akses kepada kelas asas sebagai "super" telah menjadi amalan biasa, terutamanya dalam kalangan pengaturcara yang berpengalaman. Simpulan bahasa ini melibatkan mencipta typedef dalam kelas terbitan yang merujuk kepada kelas asas. Berikut ialah penjelasan ringkas tentang cara ia berfungsi dan faedah yang ditawarkan:
Cara Ia Berfungsi
Kod berikut menunjukkan simpulan bahasa "typedef super":
class Derived : public Base { typedef Base super; // Creates an alias for Base
Dengan typedef ini, anda boleh menggunakan alias "super" untuk mengakses kelas asas dalam pelbagai senario, seperti dalam pembina:
Derived(int i, int j) : super(i), J(j) {}
atau apabila memanggil kaedah kelas asas dalam overridden versi:
void Derived::foo() { super::foo(); // Calls the overridden version of foo in Derived }
Idiom boleh digunakan untuk merantai, membenarkan akses kepada kelas asas kelas asas:
class DerivedDerived : public Derived { typedef Derived super; // Creates an alias for Derived
void DerivedDerived::bar() { super::bar(); // Calls Derived::bar super::super::bar; // Calls Base::bar }
Faedah
Idiom "typedef super" menawarkan beberapa faedah:
Kesamaan dan Penyeragaman
Walaupun simpulan bahasa "typedef super" telah menjadi agak biasa, ia masih dianggap sebagai ciri bukan standard dalam C . Walau bagaimanapun, perbincangan yang disebutkan dalam jawapan menunjukkan bahawa konsep itu pada mulanya dipertimbangkan untuk dimasukkan ke dalam bahasa.
Kesimpulan
Simpulan bahasa "typedef super" ialah teknik yang berguna yang meningkatkan kebolehbacaan dan ketekalan kod dalam program C. Ia digunakan secara meluas dan telah dilaksanakan oleh pengaturcara untuk meniru kefungsian kata kunci "super" yang terdapat dalam bahasa lain. Walaupun tidak diseragamkan, simpulan bahasa ini kekal sebagai alat yang berharga untuk pembangun C yang berpengalaman.
Atas ialah kandungan terperinci Mengapakah simpulan bahasa 'typedef super' begitu biasa digunakan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!