输入输出运算符什么时候重载为类的成员函数
时间: 2023-10-11 20:10:42 浏览: 55
输入输出运算符可以重载为类的成员函数,以便在类的对象上直接使用这些运算符,以实现方便的输入输出操作。重载为类的成员函数时,输入输出运算符的函数原型如下:
```C++
// 重载输出运算符
ostream& operator<<(ostream& os, const 类型名& 对象名);
// 重载输入运算符
istream& operator>>(istream& is, 类型名& 对象名);
```
其中,`ostream` 和 `istream` 分别是输出流和输入流类型,`类型名` 指的是要进行输入输出的类的类型,`对象名` 是要进行输入输出的类的对象。重载为类的成员函数时,需要将函数定义为类的成员函数,例如:
```C++
class MyClass {
public:
// 重载输出运算符
friend ostream& operator<<(ostream& os, const MyClass& obj) {
os << "MyClass对象的成员变量值为:" << obj.num << endl;
return os;
}
// 重载输入运算符
friend istream& operator>>(istream& is, MyClass& obj) {
cout << "请输入MyClass对象的成员变量值:";
is >> obj.num;
return is;
}
private:
int num;
};
```
这样,就可以通过以下方式在类的对象上使用输入输出运算符:
```C++
MyClass obj1, obj2;
cout << obj1; // 输出 obj1 对象的成员变量值
cin >> obj2; // 输入 obj2 对象的成员变量值
```