友元函数声明规则如下:声明必须位于类的外部。可以声明为成员函数或全局函数。可通过指针或引用传递类的对象。
C++ 友元函数的声明规则
友元函数声明
友元函数是一种特殊的函数,可以访问类的私有成员。要在 c++ 中声明友元函数,使用 friend 关键字,如下所示:
// 声明 MyClass 类的友元函数 printInfo()
friend void printInfo(const MyClass& obj);
声明规则
以下是在 C++ 中声明友元函数的规则:
友元函数的声明必须位于类的外部。
友元函数可以声明为成员函数(带作用域解析符)或全局函数(不带作用域解析符)。
可以通过指针或引用来传递类的对象。
实战案例
考虑以下 MyClass 类,它有私有成员变量 _data:
class MyClass {
private:
int _data;
public:
// ...
};
我们可以定义一个友元函数 printInfo() 来访问 _data:
// 声明 printInfo() 为 MyClass 的友元函数
friend void printInfo(const MyClass& obj) {
std::cout << "Data: " << obj._data << std::endl;
}
在主函数中,我们可以实例化 MyClass 对象并调用友元函数来打印私有数据:
int main() {
MyClass obj;
obj._data = 42; // 访问私有成员(仅在友元函数中允许)
printInfo(obj); // 调用友元函数
return 0;
}
输出:
Data: 42
以上就是C++ 友元函数的声明规则有哪些?的详细内容,