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!