" Perlu dalam Templat C? " />" Perlu dalam Templat C? " />
The Mysteriously Persistent "this->" Construct
Dalam bidang pengaturcaraan C, pembangun sering menghadapi binaan misteri seperti "this->" dalam fungsi ahli. Walaupun sesetengah mungkin mempersoalkan keperluannya, terdapat senario khusus di mana ia mempunyai tujuan yang sangat diperlukan: templat dalam kelas terbitan.
Pertimbangkan contoh berikut:
<code class="cpp">template<typename T> class A { protected: T x; }; template<typename T> class B : public A<T> { public: T get() { return this->x; } };</code>
Dalam ini kod, sintaks "this->" adalah penting untuk menunjukkan secara eksplisit bahawa ahli yang diakses "x" tergolong dalam kelas terbitan B dan bukannya sebarang parameter berpotensi dengan nama yang sama proses.
Walau bagaimanapun, di luar konteks warisan kelas templat tersebut, binaan "ini->" secara amnya tidak mempunyai tujuan unik dalam fungsi ahli biasa, mengakses ahli secara langsung tanpa "ini->". . Pembangun biasanya boleh mengalih keluar bahagian "ini->" tanpa sebarang akibat.
Walaupun persoalan menggunakan "ini->" mungkin kelihatan berlebihan, kehadirannya dalam pangkalan kod tertentu memberikan peringatan yang halus tentang kehalusan yang terletak di bawah permukaan warisan dan templat C. Walau bagaimanapun, untuk kebanyakan senario praktikal, ketiadaan "ini->" dalam panggilan fungsi ahli kekal sebagai konvensyen yang boleh diterima.
Atas ialah kandungan terperinci Bilakah 'ini->' Diperlukan dalam Templat C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!