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