Rumah > pembangunan bahagian belakang > C++ > Sintaks Pembina C: Mengapakah `Foo foo2();` Menyebabkan Ralat?

Sintaks Pembina C: Mengapakah `Foo foo2();` Menyebabkan Ralat?

Linda Hamilton
Lepaskan: 2024-11-30 14:13:16
asal
385 orang telah melayarinya

C   Constructor Syntax: Why Does `Foo foo2();` Cause an Error?

Ralat: Meminta Ahli dalam Jenis Bukan Kelas 'Jenis Bukan Kelas'

Apabila mengisytiharkan objek dalam C , adalah penting untuk menggunakan sintaks yang betul untuk kedua-dua pembina. Dalam kod yang disediakan, percubaan untuk mencipta objek menggunakan pembina tanpa hujah mengakibatkan ralat:

Foo foo2();
Salin selepas log masuk

Sintaks ini tidak betul kerana ia menyerupai pengisytiharan fungsi, menyebabkan pengkompil mentafsirkannya sedemikian . Sintaks yang betul untuk pengisytiharan objek menggunakan pembina tanpa argumen ialah:

Foo foo2;
Salin selepas log masuk

Dengan mengalih keluar kurungan, pengkompil akan mengenali foo2 dengan betul sebagai objek kelas Foo.

Sebagai alternatif, jika anda ingin menggunakan kurungan untuk kejelasan, pastikan hujah pembina adalah disertakan:

Foo foo2(1); // Explicitly pass the default argument of 1 to the no-argument constructor
Salin selepas log masuk

Atas ialah kandungan terperinci Sintaks Pembina C: Mengapakah `Foo foo2();` Menyebabkan Ralat?. 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