Rumah >pembangunan bahagian belakang >C++ >Bilakah Anda Harus Menggunakan Pengisytiharan Rakan dalam C ?

Bilakah Anda Harus Menggunakan Pengisytiharan Rakan dalam C ?

Patricia Arquette
Patricia Arquetteasal
2024-12-30 08:50:09733semak imbas

When Should You Use Friend Declarations in C  ?

Memahami Pengisytiharan Rakan dalam C

Pengisytiharan "rakan" dalam C ialah mekanisme berkuasa yang membolehkan kelas mengakses ahli persendirian atau yang dilindungi daripada kelas lain.

1. Bila Perlu Menggunakan rakan

  • Apabila dua kelas perlu bekerjasama rapat dan memerlukan akses kepada ahli bukan awam masing-masing.
  • Untuk melaksanakan lebihan muatan pengendali bagi jenis yang ditentukan pengguna.
  • Untuk mengakses ahli peribadi kelas untuk ujian tujuan.

2. Lebih Muatan Operator dan Pengisytiharan Rakan

Pembebanan lebih operator ialah satu cara untuk melanjutkan fungsi pengendali untuk bekerja pada kelas yang ditentukan pengguna. Dengan mengisytiharkan fungsi pengendali sebagai rakan kelas, pengendali boleh terus mengakses ahli persendirian. Ini membolehkan pelaksanaan pengendali yang bersih dan intuitif.

3. Pengecualian Enkapsulasi

Pengisytiharan rakan nampaknya bercanggah dengan prinsip pengaturcaraan berorientasikan objek, di mana enkapsulasi mengehadkan akses kepada butiran dalaman objek. Walau bagaimanapun, dalam kes tertentu, pengisytiharan rakan boleh dibenarkan dalam ketegasan OOP:

  • Objek Saling Bergantung: Jika dua objek mempunyai hubungan semula jadi dan perlu bekerjasama rapat, kawan pengisytiharan boleh menyediakan cara yang selamat dan cekap untuk membenarkan akses kepada ahli persendirian.
  • Pengujian: Pengisytiharan rakan boleh berguna untuk menguji ahli peribadi kelas. Walau bagaimanapun, adalah penting untuk memastikan ujian ini diasingkan dan meminimumkan bilangan pengisytiharan rakan.

Contoh Kod

Pertimbangkan contoh berikut:

class Window {
  friend class WindowManager;

private:
  int width;
  int height;
};

class WindowManager {
public:
  void resize(Window& window, int newWidth, int newHeight) {
    window.width = newWidth;
    window.height = newHeight;
  }
};

Dalam contoh ini, kelas Window mempunyai ahli data peribadi (lebar dan tinggi) yang hanya boleh diubah suai oleh Kelas WindowManager. Dengan mengisytiharkan WindowManager sebagai rakan, kaedah ubah saiz boleh mengakses dan memanipulasi ahli data peribadi.

Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan Pengisytiharan Rakan 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