Rumah >pembangunan bahagian belakang >C++ >Rujukan Const dalam C : Const Sebelum atau Selepas Penentu Jenis?

Rujukan Const dalam C : Const Sebelum atau Selepas Penentu Jenis?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-15 10:52:02278semak imbas

Const Reference in C  : Const Before or After the Type Specifier?

Rujukan Const: Sebelum vs. Selepas Penentu Jenis

Dalam C , terdapat perbezaan halus dalam sintaks untuk mengisytiharkan rujukan const:

int foo1(const Fred &arg) {
...
}
int foo2(Fred const &arg) {
...
}

Kedua-dua kaedah pengisytiharan menghasilkan rujukan berterusan kepada objek Fred. Walau bagaimanapun, peletakan kata kunci const tidak mempunyai kesan semantik.

Sebagai Soal Gaya

Walaupun gelagat pengisytiharan ini adalah sama, terdapat pilihan gaya untuk pertimbangkan.

Sesetengah lebih suka const T& (dan const T*), memetik:

  • Penjajaran dengan buku Stroustrup dan standard C
  • Keakraban dalam kalangan pengaturcara C berpengalaman
  • Penggunaan biasa dalam industri

Yang lain memilih T const& (dan T const*), berdasarkan kebolehbacaan:

  • Penghuraian kanan-ke-kiri yang konsisten
  • Mengurangkan risiko tersalah letak * atau mentafsir T const* dengan tidak betul

Betul- Penghuraian ke Kiri

Penghuraian kanan ke kiri peraturan menyatakan bahawa pengisytiharan hendaklah dibaca dari kanan ke kiri. Oleh itu, const T& boleh ditafsirkan sebagai "rujukan kepada const T" atau "rujukan const T." Begitu juga, T const& boleh dibaca sebagai "rujukan const kepada T" atau "rujukan const T." Kedua-dua tafsiran adalah betul dari segi tatabahasa, menjadikan peletakan kata kunci const kurang memberi kesan kepada kebolehbacaan berbanding yang dipertikaikan oleh sesetengah pihak.

Akhirnya, pilihan antara gaya pengisytiharan ini adalah soal keutamaan peribadi. Kedua-duanya betul dari segi sintaksis dan menyampaikan maksud yang sama.

Atas ialah kandungan terperinci Rujukan Const dalam C : Const Sebelum atau Selepas Penentu Jenis?. 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