友元函数代码
时间: 2023-08-06 18:20:39 浏览: 94
下面是一个示例代码,展示了如何在C++中定义和使用友元函数:
```cpp
#include <iostream>
using namespace std;
class MyClass {
private:
int x;
public:
MyClass(int a) {
x = a;
}
friend void printX(MyClass obj); //声明友元函数
};
void printX(MyClass obj) {
cout << "The value of x is: " << obj.x << endl; // 可以访问私有成员x
}
int main() {
MyClass obj1(10);
printX(obj1); //调用友元函数
return 0;
}
```
在上面的代码中,我们定义了一个名为`MyClass`的类,在类中定义了一个私有成员变量`x`和一个公有构造函数。我们还声明了一个友元函数`printX`,该函数可以访问`MyClass`类的私有成员变量`x`。在主函数中,我们创建了一个`MyClass`对象`obj1`,并将其作为参数传递给`printX`函数,从而打印出了`x`的值。
相关问题
c++友元函数代码示例
C++中的友元函数是一种特殊的函数,它可以访问类的私有成员和保护成员。下面是一个C++友元函数的代码示例:
```cpp
#include <iostream>
class MyClass {
private:
int privateData;
public:
MyClass(int data) : privateData(data) {}
friend void friendFunction(MyClass obj);
};
void friendFunction(MyClass obj) {
std::cout << "Friend function accessing private data: " << obj.privateData << std::endl;
}
int main() {
MyClass obj(42);
friendFunction(obj);
return 0;
}
```
在上面的示例中,`MyClass`类声明了一个私有成员`privateData`。然后,在类的定义中使用了`friend`关键字来声明`friendFunction`函数为友元函数。这意味着`friendFunction`函数可以直接访问`MyClass`类的私有成员。
在`main`函数中,我们创建了一个`MyClass`对象`obj`,并将其作为参数传递给`friendFunction`函数。在`friendFunction`函数中,我们可以直接访问`obj`的私有成员`privateData`并输出它的值。
C++的友元函数代码示例
以下是一个示例代码,演示如何在C++中定义和使用友元函数:
```cpp
#include <iostream>
class MyClass {
private:
int num;
public:
MyClass(int n) : num(n) {}
friend void friendFunc(MyClass obj); // 声明友元函数
};
// 定义友元函数
void friendFunc(MyClass obj) {
std::cout << "友元函数访问私有成员 num:" << obj.num << std::endl;
}
int main() {
MyClass obj(42);
friendFunc(obj); // 调用友元函数
return 0;
}
```
在这个示例中,我们创建了一个名为`MyClass`的类,它有一个私有成员变量`num`。我们希望能够在类外部访问这个私有成员变量,因此我们声明了一个友元函数`friendFunc`。
在`MyClass`类中,我们使用`friend`关键字声明了`friendFunc`函数为`MyClass`的友元函数。这意味着`friendFunc`可以访问`MyClass`的私有成员。
在`main`函数中,我们创建了一个`MyClass`对象`obj`,然后调用了友元函数`friendFunc(obj)`。友元函数可以直接访问`obj`的私有成员变量`num`并打印出来。
输出结果将是:
```
友元函数访问私有成员 num:42
```
请注意,友元函数不是类的成员函数,但它可以访问类的私有成员。
阅读全文