Rumah > pembangunan bahagian belakang > C++ > Adakah `Pautan* seterusnya` Menggunakan Nama Kelas yang Disuntik dalam Templat C?

Adakah `Pautan* seterusnya` Menggunakan Nama Kelas yang Disuntik dalam Templat C?

DDD
Lepaskan: 2024-11-02 22:18:30
asal
815 orang telah melayarinya

Does `Link* next` Use the Injected Class Name in C   Templates?

Menggunakan Nama Kelas dalam Templat Kelas Tanpa Parameter Templat

Pertimbangkan kod berikut daripada buku C:

<code class="cpp">template <typename E> class Link {
    ...
    Link* next;  // this line may be confusing
    ...
};</code>
Salin selepas log masuk

Dalam kod ini, ahli seterusnya diisytiharkan tanpa menyatakan hujah templat E, menimbulkan kebimbangan tentang ketepatannya. Bukankah sepatutnya Pautan* seterusnya?

Penjelasan

Ini dijelaskan oleh konsep "nama kelas yang disuntik." Mengikut piawaian C [temp.local], apabila digunakan tanpa hujah templat, nama kelas dalam templat kelas adalah bersamaan dengan nama kelas diikuti dengan parameter templat yang disertakan dalam kurungan sudut. Oleh itu, dalam kes ini, Pautan* adalah bersamaan dengan Pautan*.

Peraturan ini bertujuan untuk kemudahan, memastikan bahawa nama kelas dalam kelas merujuk kepada kelas itu sendiri dan bukan entiti luaran dengan nama yang sama. Dalam kes templat kelas, ia menyediakan tatatanda singkatan, terutamanya apabila berurusan dengan senarai hujah templat lanjutan.

Atas ialah kandungan terperinci Adakah `Pautan* seterusnya` Menggunakan Nama Kelas yang Disuntik 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan