Bagaimana untuk Mencipta Dua Kelas C yang Saling Merujuk Satu Sama Lain?

Patricia Arquette
Lepaskan: 2024-11-10 08:16:02
asal
681 orang telah melayarinya

How to Create Two C   Classes that Mutually Reference Each Other?

Dua Kelas Saling Merujuk Satu Sama Lain

Mewujudkan dua kelas C yang masing-masing mengandungi objek jenis lain secara langsung tidak mungkin kerana isu rujukan pekeliling. Walau bagaimanapun, penyelesaian melibatkan penggunaan penunjuk untuk merujuk antara satu sama lain.

Pengisytiharan Hadapan dan Penggunaan Penunjuk

Untuk mencapai ini, gunakan pengisytiharan hadapan dalam fail pengepala untuk mewujudkan kewujudan kelas lain tanpa mentakrifkannya:

// bar.h
class foo; // Say foo exists without defining it.

class bar {
public:
  foo* getFoo();
protected:
  foo* f;
};
Salin selepas log masuk
// foo.h
class bar; // Say bar exists without defining it.

class foo {
public:
  bar* getBar();
protected:
  bar* f;
};
Salin selepas log masuk

Kemudian, dalam fail .cpp masing-masing, masukkan pengepala lain untuk mentakrifkan kelas sepenuhnya:

// bar.cpp
#include "foo.h"

foo* bar::getFoo() { return f; }
Salin selepas log masuk
// foo.cpp
#include "bar.h"

bar* foo::getBar() { return f; }
Salin selepas log masuk

Pendekatan ini memecahkan gelung rujukan bulat kerana pengisytiharan hadapan membenarkan kelas untuk mengakui kewujudan satu sama lain tanpa menyertakan pengepala mereka, menghalang isu ruang yang tidak terhingga untuk objek.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Dua Kelas C yang Saling Merujuk Satu Sama Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan