Rumah > pembangunan bahagian belakang > C++ > Mengapa Saya Tidak Boleh Menggunakan Tanda Kurung dalam Perisytiharan Pembina saya Tanpa Argumen?

Mengapa Saya Tidak Boleh Menggunakan Tanda Kurung dalam Perisytiharan Pembina saya Tanpa Argumen?

Patricia Arquette
Lepaskan: 2024-11-20 20:02:21
asal
1006 orang telah melayarinya

Why Can't I Use Parentheses in my Constructor Declaration Without Arguments?

Ralat Penghuraian yang Membingungkan: Merungkai Teka-teki Tanda Kurung dalam Argumen Pembina

Apabila menemui mesej ralat samar "permintaan untuk 'fungsi1' ahli dalam 'myObj', iaitu jenis bukan kelas 'MyClass ()()'" manakala cuba menyusun atur cara C, pembangun mungkin mendapati diri mereka memikirkan sebab di sebalik ralat penghuraian yang membingungkan ini. Kod sumber yang dipersoalkan mengandungi kelas dengan pembina yang tidak mempunyai sebarang hujah, diisytiharkan menggunakan baris berikut:

MyClass myObj();
Salin selepas log masuk

Setelah melaksanakan proses penyusunan, ralat yang disebutkan di atas muncul, menunjukkan bahawa fungsi ahli 'function1' tidak boleh boleh diakses melalui objek 'myObj' kerana 'myObj' dianggap sebagai jenis bukan kelas. Untuk menyelesaikan isu ini, kod diubah suai kepada:

MyClass myObj;
Salin selepas log masuk

Ini menimbulkan persoalan sama ada ketiadaan hujah dalam perisytiharan pembina memerlukan peninggalan kurungan. Walaupun pengisytiharan pembina kosong menggunakan kurungan telah digunakan sebelum ini dalam C , standard bahasa telah mengambil pendirian yang tegas: kesamaran seperti yang terdapat dalam kod yang disediakan diselesaikan secara konsisten memihak kepada pengisytiharan fungsi.

Adalah penting untuk diperhatikan bahawa pemula kurungan kosong dibenarkan dalam senario tertentu, seperti dalam ungkapan baharu atau semasa membina objek sementara yang dimulakan nilai. Walau bagaimanapun, dalam kes pengisytiharan pembina tanpa hujah, piawaian dengan tegas menentukan peninggalan kurungan. Ini memastikan kejelasan dan menghalang kemungkinan kekeliruan yang mungkin timbul daripada kekaburan sintaksis.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggunakan Tanda Kurung dalam Perisytiharan Pembina saya Tanpa Argumen?. 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