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

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

Linda Hamilton
Linda Hamiltonasal
2024-11-30 14:13:16408semak imbas

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();

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;

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

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!

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