Rumah >pembangunan bahagian belakang >C++ >Apakah Nama Kelas yang Disuntik dan Bagaimana Penggunaannya Berkembang?

Apakah Nama Kelas yang Disuntik dan Bagaimana Penggunaannya Berkembang?

Linda Hamilton
Linda Hamiltonasal
2024-12-23 19:03:15184semak imbas

What is an Injected Class Name and How Has Its Use Evolved?

Nama Kelas yang Disuntik: Tujuan dan Evolusi Sejarah

Tanggapan nama kelas yang disuntik merujuk kepada pengisytiharan tersirat kelas dalam kelasnya sendiri skop. Ini membolehkan nama kelas digunakan dalam badan kelas untuk merujuk kepada kelas itu sendiri, walaupun dengan kehadiran entiti lain dengan nama yang sama dalam skop yang disertakan.

Tujuan Nama Kelas yang Disuntik

Nama kelas yang disuntik mempunyai beberapa tujuan praktikal, termasuk:

  • Penyelesaian Kekaburan: Ia menyahkekaburan antara rujukan kepada kelas dan entiti lain dengan nama yang sama dalam skop yang dilampirkan. Ini amat penting untuk ahli kelas dan fungsi ahli yang berkongsi nama yang sama dengan kelas.
  • Kemudahan dalam Templat Kelas: Ia membolehkan penggunaan nama kelas dalam templat tanpa menyatakan senarai hujah templat, memudahkan kod.

Bersejarah Pengenalan

Konsep nama kelas yang disuntik wujud dalam beberapa bentuk walaupun sebelum C . ARM (Manual Rujukan Ada) menyatakan bahawa nama kelas boleh digunakan dalam penentu kelas untuk merujuk kepada kelas itu sendiri.

Dalam C 98, nama kelas yang disuntik telah dimasukkan secara tersirat ke dalam skop kelas. Walau bagaimanapun, istilah "injected-class-name" telah diperkenalkan dalam C 03 dengan DR 147.

Contoh Kes Penggunaan

Pertimbangkan kelas berikut:

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

Tanpa nama kelas yang disuntik, tidak jelas sama ada create() mencipta objek X sementara atau memanggil fungsi X. Nama kelas yang disuntik memastikan bahawa dalam kandungan X, nama X sentiasa merujuk kepada kelas itu sendiri, menyahkekaburan maksud create().

Atas ialah kandungan terperinci Apakah Nama Kelas yang Disuntik dan Bagaimana Penggunaannya Berkembang?. 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