Rumah >pembangunan bahagian belakang >C++ >Apakah Tujuan dan Sejarah Nama Kelas Disuntik dalam C?

Apakah Tujuan dan Sejarah Nama Kelas Disuntik dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-12-16 07:16:11471semak imbas

What is the Purpose and History of Injected Class Names in C  ?

Nama Kelas yang Disuntik dalam C : Tujuan dan Sejarah

C menampilkan konsep menarik yang dikenali sebagai nama kelas yang disuntik. Dengan menyuntik nama kelas ke dalam skopnya sendiri, bahasa memastikan carian nama dalam kelas sentiasa mencari kelas semasa, walaupun apabila kelas lain yang dinamakan serupa wujud dalam skop yang sama.

Ciri ini menjadi penting dalam senario seperti berikut:

void X() { }
class X {
public:
  static X create() { return X(); }
};

Adakah fungsi create() membina objek X sementara atau menggunakan fungsi X? Dalam skop global, fungsi X akan dipanggil. Oleh itu, nama kelas yang disuntik menjamin bahawa dalam badan kelas X, nama X sentiasa merujuk kepada kelas itu sendiri, menghalang potensi kekaburan.

Nama kelas yang disuntik juga terbukti bermanfaat dalam templat kelas, membenarkan kelas templat untuk dirujuk tanpa menyatakan hujah, memudahkan ungkapan.

Walaupun wujud secara konsep dalam C 98, istilah "disuntik nama kelas" telah diperkenalkan dalam C 03 (DR 147). Sebelum C 98, spesifikasi bahasa ARM membayangkan konsep tetapi tidak mempunyai istilah khusus.

Kelebihan Nama Kelas yang Disuntik:

  • Kejelasan dalam Ahli Akses: Memastikan pengenalan tepat kelas dalam kelasnya sendiri skop.
  • Kesederhanaan dalam Templat Kelas: Memudahkan rujukan mudah kepada instantiasi kelas semasa tanpa hujah templat.

Atas ialah kandungan terperinci Apakah Tujuan dan Sejarah Nama Kelas Disuntik dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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