Rumah > Artikel > pembangunan bahagian belakang > Penjelasan terperinci tentang fungsi rakan C++: Apakah masalah yang digunakan untuk diselesaikan oleh fungsi rakan?
Fungsi rakan ialah fungsi khas dalam C++ yang boleh mengakses ahli persendirian kelas lain. Mereka menyelesaikan sekatan akses yang disebabkan oleh enkapsulasi kelas dan digunakan untuk menyelesaikan masalah seperti operasi data antara kelas, akses fungsi global kepada ahli persendirian dan perkongsian kod merentas kelas atau unit kompilasi. Penggunaan: Gunakan kata kunci rakan untuk mengisytiharkan fungsi rakan untuk mengakses ahli peribadi. Nota: Gunakan fungsi rakan dengan berhati-hati untuk mengelakkan ralat yang disebabkan oleh memintas mekanisme enkapsulasi. Gunakan hanya apabila perlu, hadkan akses dan gunakan fungsi pengubah suai dengan berhati-hati.
C++ Friend Function Penjelasan Terperinci: Alat yang berkuasa untuk menghapuskan sekatan akses
Pengenalan
Fungsi rakan ialah jenis fungsi khas dalam C++ yang boleh mengakses ahli peribadi kelas lain Ia membolehkan data dan kaedah yang pada asalnya tidak boleh diakses oleh dunia luar untuk diakses oleh dunia luar, sekali gus menyelesaikan masalah sekatan akses yang disebabkan oleh beberapa pengkapsulan kelas.
Tujuan
Fungsi rakan biasanya digunakan untuk menyelesaikan masalah berikut:
Syntax
Sintaks untuk mengisytiharkan fungsi rakan adalah seperti berikut:
class ClassName { // ...成员声明 friend FunctionName; };
di mana FunctionName
ialah nama fungsi rakan. FunctionName
是友元函数的名称。
实战案例
假设我们有两个类 Student
和 Teacher
,它们需要相互访问彼此的私有数据。我们可以使用友元函数来实现:
class Student { private: int marks; }; class Teacher { private: int salary; public: friend void calculateBonus(const Student& student, const Teacher& teacher); }; void calculateBonus(const Student& student, const Teacher& teacher) { std::cout << "Student's marks: " << student.marks << std::endl; std::cout << "Teacher's salary: " << teacher.salary << std::endl; } int main() { Student student; student.marks = 90; Teacher teacher; teacher.salary = 50000; calculateBonus(student, teacher); return 0; }
在这个例子中,calculateBonus
函数被声明为 Student
和 Teacher
类的友元函数,因此它可以访问这两个类的私有成员 marks
和 salary
Kes praktikal
Andaikan kita mempunyai dua kelasrrreee
Dalam contoh ini, fungsicalculateBonus
diisytiharkan sebagai rakan Student
dan Guru
classes berfungsi, jadi ia boleh mengakses marks
dan gaji
ahli persendirian kedua-dua kelas ini. Atas ialah kandungan terperinci Penjelasan terperinci tentang fungsi rakan C++: Apakah masalah yang digunakan untuk diselesaikan oleh fungsi rakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!