在C++中,friend
關鍵字用于授權其他類或函數訪問一個類的私有成員。被授權的類或函數稱為友元類或友元函數。
使用friend
關鍵字,可以在一個類的定義中聲明其他類或函數為友元,使得這些友元類或函數能夠訪問該類的私有成員(私有成員包括私有變量和私有函數)。
友元函數的聲明方式為:
class MyClass {
friend void friendFunction();
};
友元類的聲明方式為:
class MyClass {
friend class FriendClass;
};
友元類的所有成員函數都可以訪問聲明類的私有成員。
需要注意的是,友元關系是單向的,即如果類A聲明類B為友元,則類B并不自動聲明類A為友元。如果需要雙向訪問,則需要分別在兩個類中聲明對方為友元。
友元關系破壞了封裝性,因此應謹慎使用。只有在確實需要其他類或函數訪問私有成員時,才應該使用友元。