Dalam C++, fungsi rakan boleh mengakses ahli peribadi kelas tanpa menjadi fungsi ahli kelas. Dalam kelas templat, pengisytiharan fungsi rakan adalah serupa dengan pengisytiharan dalam kelas biasa dan mesti diisytiharkan di luar definisi kelas. Sebagai contoh, untuk mengisytiharkan fungsi rakan printValue dalam kelas templat MyClass, anda perlu mengisytiharkan fungsi di luar definisi kelas menggunakan kata kunci rakan. Fungsi rakan hanya boleh mengakses ahli kelas di mana ia diisytiharkan sebagai rakan.
C++ Friend Function Penjelasan Terperinci: Gunakan dalam Kelas Templat
Pengenalan
Fungsi rakan ialah jenis fungsi khas dalam C++ yang dibenarkan untuk mengakses ahli persendirian dalam kelas . fungsi kelas. Fungsi rakan berguna dalam situasi tertentu, seperti apabila data atau fungsi perlu dikongsi merentasi sempadan kelas.
Fungsi rakan dalam kelas templat
Mengisytiharkan fungsi rakan dalam kelas templat sangat serupa dengan dalam kelas biasa. Contoh berikut menunjukkan cara mengisytiharkan fungsi rakan printValue
dalam kelas templat MyClass
: MyClass
中声明友元函数 printValue
:
template <typename T> class MyClass { public: T value; friend void printValue(const MyClass<T>& obj) { std::cout << "Value: " << obj.value << std::endl; } };
使用友元函数
要使用友元函数,必须在类的定义外部声明该函数。可以使用 friend
关键字来指定友元函数,如下所示:
template <typename T> void printValue(const MyClass<T>& obj);
实战案例
假设我们有一个 Node
模板类,其中包含私有数据成员 value
,并想要声明一个友元函数 display
来显示节点的值。
template <typename T> class Node { public: T value; friend void display(const Node<T>& node) { std::cout << "Node Value: " << node.value << std::endl; } };
在编写友元函数时,需要注意以下几点:
const
或 virtual
rrreeeconst
atau maya
. 🎜🎜Sesuatu fungsi hanya boleh mengakses ahli kelas yang mengisytiharkannya sebagai rakan. 🎜🎜Atas ialah kandungan terperinci Penjelasan terperinci tentang fungsi rakan C++: Bagaimana untuk menggunakan fungsi rakan dalam kelas templat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!