Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memanggil Pembina Kelas Asas dalam C?

Bagaimana untuk Memanggil Pembina Kelas Asas dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-11-26 08:23:08524semak imbas

How to Call a Base Class Constructor in C  ?

Memanggil Pembina Kelas Asas

Semasa bekerja dengan warisan dalam Java, anda boleh memanggil pembina kelas super menggunakan super(). Ini menimbulkan persoalan bagaimana untuk mencapai kefungsian yang sama dalam C .

Secara khusus, isu ini timbul apabila mewarisi daripada kelas asas C dengan pembina bukan lalai. Pengkompil sering memberi amaran tentang kekurangan pembina lalai yang sesuai.

Penyelesaian: Menggunakan Senarai Pemula Pembina

Tidak seperti Java, C tidak mempunyai super() eksplisit sintaks untuk memanggil pembina kelas asas. Sebaliknya, anda menentukan panggilan dalam senarai pemula pembina bagi kelas terbitan. Senarai pemula muncul sebelum badan pembina dan digunakan untuk memulakan pembolehubah ahli.

Sebagai contoh, pertimbangkan kelas asas berikut dengan pembina yang mengambil tatasusunan aksara sebagai hujah:

class BaseClass {
public:
    BaseClass(char *name);
    ...
};

Untuk memanggil pembina kelas asas dalam kelas terbitan, masukkan panggilan dalam senarai pemula:

class Foo : public BaseClass {
public:
    Foo() : BaseClass("asdf") {}
};

Ini memastikan bahawa pembina kelas asas digunakan sebelum sebarang permulaan ahli lain berlaku. Apabila pembina kelas asas mengambil hujah, ia mesti dinyatakan dalam senarai pemula sebelum mana-mana pembolehubah ahli dimulakan.

Atas ialah kandungan terperinci Bagaimana untuk Memanggil Pembina Kelas Asas dalam C?. 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