Rumah > pembangunan bahagian belakang > C++ > Bilakah 'ini->' Diperlukan dalam Templat C?

Bilakah 'ini->' Diperlukan dalam Templat C?

Susan Sarandon
Lepaskan: 2024-11-05 00:56:02
asal
418 orang telah melayarinya

When is " 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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan