Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mencipta Kelas Yang Berkongsi Contoh Satu Sama Lain dalam C?
Mencipta Kelas Yang Berkongsi Contoh Satu Sama Lain dalam C
Apabila cuba mencipta dua kelas dalam C , di mana setiap kelas memerlukan objek kelas lain sebagai ahli, ralat penyusunan mungkin berlaku. Ini kerana pemasukan objek langsung membawa kepada gelung tak terhingga dalam peruntukan memori.
Penyelesaian: Gunakan Penunjuk sebagai Ahli Kelas
Untuk memintas isu ini, buat penunjuk sebagai ahli kelas dan bukannya objek langsung. Pendekatan ini melibatkan pengisytiharan hadapan untuk mengumumkan kewujudan kelas tanpa memberikan definisi penuhnya.
Dalam bar.h:
#ifndef BAR_H #define BAR_H class foo; // Forward declare foo class bar { public: foo* getFoo(); protected: foo* f; }; #endif
In foo.h:
#ifndef FOO_H #define FOO_H class bar; // Forward declare bar class foo { public: bar* getBar(); protected: bar* f; }; #endif
Dalam fail .cpp masing-masing, masukkan pengepala untuk kelas lain:
// foo.cpp #include "foo.h" #include "bar.h" // bar.cpp #include "bar.h" #include "foo.h"
Pendekatan ini terputus gelung rujukan bulat dan membolehkan penciptaan kelas yang menggunakan kejadian antara satu sama lain melalui penunjuk.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Kelas Yang Berkongsi Contoh Satu Sama Lain dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!