在C++中,友元函數(friend function)是一個非成員函數,它可以訪問類的私有(private)和保護(protected)成員
friend
關鍵字聲明一個函數為類的友元函數。通常,友元函數聲明在類定義的內部,但也可以放在類定義的外部。class MyClass {
private:
int privateVar;
public:
MyClass(int value) : privateVar(value) {}
// 聲明友元函數
friend void myFriendFunction(MyClass &obj);
};
或者
class MyClass {
private:
int privateVar;
public:
MyClass(int value) : privateVar(value) {}
// 在類定義外部聲明友元函數
friend void myFriendFunction(MyClass &obj);
};
friend
關鍵字。友元函數可以訪問類的私有和保護成員。void myFriendFunction(MyClass &obj) {
std::cout << "Private variable: " << obj.privateVar << std::endl;
}
int main() {
MyClass obj(42);
myFriendFunction(obj); // 輸出:Private variable: 42
return 0;
}
注意:友元函數不是類的成員函數,因此它不能訪問類的this
指針。同時,友元函數不是類的成員函數,所以它不能使用類的命名空間。