那能不能重载为类的成员函数呢
时间: 2024-03-21 07:39:25 浏览: 29
输入输出运算符也可以重载为类的成员函数,这样可以在类的对象上直接使用这些运算符,而不需要使用友元函数。重载为类的成员函数时,输入输出运算符的函数原型如下:
```C++
// 重载输出运算符
ostream& operator<<(ostream& os);
// 重载输入运算符
istream& operator>>(istream& is);
```
其中,`ostream` 和 `istream` 分别是输出流和输入流类型。重载为类的成员函数时,输入输出运算符的函数定义需要在类的内部,例如:
```C++
class MyClass {
public:
int num;
ostream& operator<<(ostream& os) {
os << "MyClass对象的成员变量值为:" << num << endl;
return os;
}
istream& operator>>(istream& is) {
cout << "请输入MyClass对象的成员变量值:";
is >> num;
return is;
}
};
```
这样,就可以通过以下方式在类的对象上使用输入输出运算符:
```C++
MyClass obj1, obj2;
obj1 << cout; // 输出 obj1 对象的成员变量值
obj2 >> cin; // 输入 obj2 对象的成员变量值
```
需要注意的是,在重载为类的成员函数时,输入输出运算符的第一个参数是输入输出流对象,而不是类的对象。因此,在使用输入输出运算符时,需要将类的对象作为参数传递给输入输出运算符的函数,然后将输入输出流对象作为该函数的参数传递给输入输出运算符。
相关推荐
![](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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)