用友元函数怎么引用字符串
时间: 2023-08-13 21:05:59 浏览: 49
友元函数可以访问类的私有成员,包括私有成员变量和私有成员函数。在友元函数中,可以直接访问类的私有成员,不需要通过对象或指针来访问。
要引用一个字符串,可以使用 `const char*` 类型的指针。下面是一个示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
class MyClass {
private:
char str[100];
public:
friend void printString(MyClass obj); // 声明友元函数
void setString(char s[]) {
strcpy(str, s);
}
};
void printString(MyClass obj) {
cout << "String is: " << obj.str << endl;
}
int main() {
MyClass obj;
obj.setString("Hello, world!");
printString(obj);
return 0;
}
```
在上面的代码中,`MyClass` 类有一个私有成员变量 `str`,表示一个字符串。`printString()` 函数是一个友元函数,可以访问 `MyClass` 类的私有成员变量。在 `main()` 函数中,我们创建了一个 `MyClass` 对象 `obj`,并通过 `setString()` 函数设置了字符串的值。然后,我们调用 `printString()` 函数输出字符串的值,在函数中直接访问了 `MyClass` 类的私有成员变量 `str`。
输出结果为:
```
String is: Hello, world!
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)