Rumah >pembangunan bahagian belakang >C++ >Bolehkah Kelas C Memasukkan Dirinya sebagai Pembolehubah Ahli?

Bolehkah Kelas C Memasukkan Dirinya sebagai Pembolehubah Ahli?

Patricia Arquette
Patricia Arquetteasal
2024-12-23 05:05:38270semak imbas

Can a C   Class Include Itself as a Member Variable?

Bolehkah Kelas C Saling Menyertakan Dirinya Sebagai Ahli?

Dalam C , tergoda untuk menentukan kelas yang merangkumi dirinya sebagai ahli untuk mewakili struktur bersarang seperti pokok ekspresi. Walau bagaimanapun, pendekatan ini tidak dibenarkan.

Penaakulan:

Seperti yang dinyatakan dalam jawapan yang disediakan, mentakrifkan kelas dengan pembolehubah ahli jenisnya sendiri akan menghasilkan objek besar yang tidak terhingga. Setiap Nod akan mengandungi dua objek Nod, yang seterusnya akan mengandungi dua lagi objek Nod, dan seterusnya ad infinitum. Ini akan menjadikan peruntukan memori tidak praktikal dan membawa kepada ralat masa jalan.

Penyelesaian:

Untuk menyelesaikan isu ini, anda perlu menggunakan penunjuk kepada jenis kelas sebagai pembolehubah ahli bukannya jenis kelas itu sendiri. Ini membolehkan perwakilan bersarang sambil mengelakkan masalah pengulangan tak terhingga.

Pertimbangkan takrif yang disemak berikut:

class Node {
    char *cargo;
    Node* left;   // Pointer to a Node object
    Node* right;  // Another pointer to a Node object
};

Dengan menggunakan penunjuk, kita boleh mencipta struktur seperti pokok tanpa berjalan ke dalam masalah rujukan diri.

Atas ialah kandungan terperinci Bolehkah Kelas C Memasukkan Dirinya sebagai Pembolehubah Ahli?. 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