Rumah > pembangunan bahagian belakang > C++ > Penjelasan terperinci tentang fungsi rakan C++: Bilakah anda perlu menggunakan fungsi rakan?

Penjelasan terperinci tentang fungsi rakan C++: Bilakah anda perlu menggunakan fungsi rakan?

WBOY
Lepaskan: 2024-04-29 09:12:02
asal
1145 orang telah melayarinya

Fungsi rakan ialah fungsi bukan ahli yang mempunyai akses kepada ahli persendirian atau dilindungi. Fungsi rakan boleh digunakan untuk memudahkan perkongsian data merentas kelas, mengakses ahli persendirian untuk melaksanakan fungsi tertentu dan membenarkan fungsi luaran mengakses data peribadi kelas, dsb.

C++ 友元函数详解:何时需要使用友元函数?

C++ Penjelasan terperinci tentang fungsi rakan: Bila hendak menggunakan fungsi rakan?

Apakah fungsi kawan?

Fungsi rakan ialah fungsi bukan ahli yang membenarkan akses kepada ahli peribadi atau dilindungi. Fungsi rakan bukan sebahagian daripada kelas tetapi mempunyai akses kepada ahli peribadi kelas.

Bila menggunakan fungsi rakan?

Menggunakan fungsi rakan adalah mudah apabila:

  • Akses ahli persendirian untuk melaksanakan fungsi tertentu.
  • Perkongsian data merentas kategori.
  • Benarkan fungsi luaran mengakses data peribadi kelas.

Syntax

Sintaks untuk mengisytiharkan fungsi rakan adalah seperti berikut:

friend 返回类型 函数名(参数列表);
Salin selepas log masuk

rakan kata kunci digunakan untuk menentukan fungsi sebagai fungsi rakan. friend 关键字用于指定函数为友元函数。

实战案例

考虑以下代码,它定义了一个具有私有成员 data 的类:

class MyClass {
private:
    int data;
public:
    // ...
};
Salin selepas log masuk

现在,我们需要一个友元函数来访问 data 成员,以便对其进行修改:

friend void modifyData(MyClass& obj, int newData) {
    obj.data = newData;
}
Salin selepas log masuk

modifyData 函数声明为友元函数,因此它可以访问类 MyClass 的私有成员 data

注意事项

  • 谨慎使用友元函数,因为它们绕过了封装性原则。
  • 友元函数只能访问私有或受保护成员,不能访问类私有方法。
  • 友元函数不是类的一部分,因此不能使用 this
Kes praktikal🎜🎜🎜Pertimbangkan kod berikut, yang mentakrifkan kelas dengan data ahli persendirian: 🎜rrreee🎜Sekarang, kita memerlukan fungsi rakan untuk mengakses data > ahli untuk mengubah suainya: 🎜rrreee🎜Fungsi modifyData diisytiharkan sebagai fungsi rakan, jadi ia boleh mengakses data ahli persendirian kelas MyClass kod>. 🎜🎜🎜Nota🎜🎜🎜🎜Gunakan fungsi rakan dengan berhati-hati kerana ia memintas prinsip pengkapsulan. 🎜🎜Fungsi rakan hanya boleh mengakses ahli peribadi atau dilindungi, tetapi tidak boleh mengakses kaedah persendirian kelas. 🎜🎜Fungsi rakan bukan sebahagian daripada kelas, jadi penunjuk ini tidak boleh digunakan. 🎜🎜

Atas ialah kandungan terperinci Penjelasan terperinci tentang fungsi rakan C++: Bilakah anda perlu menggunakan fungsi rakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan