Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mencipta Kelas Yang Berkongsi Contoh Satu Sama Lain dalam C?

Bagaimana untuk Mencipta Kelas Yang Berkongsi Contoh Satu Sama Lain dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-11-11 08:22:02738semak imbas

How to Create Classes That Share Instances of Each Other in 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!

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