以非成员函数重载输入输出运算符
时间: 2024-02-09 19:12:36 浏览: 75
可以通过友元函数的方式,在类外定义输入输出运算符的重载函数。以下是一个例子:
```c++
#include <iostream>
using namespace std;
class MyClass {
int x;
public:
MyClass(int a) { x = a; }
friend istream& operator>>(istream& input, MyClass& obj) {
input >> obj.x;
return input;
}
friend ostream& operator<<(ostream& output, const MyClass& obj) {
output << obj.x;
return output;
}
};
int main() {
MyClass obj(0);
cout << "Enter a number: ";
cin >> obj;
cout << "The number you entered is: " << obj << endl;
return 0;
}
```
在这个例子中,我们定义了一个名为`MyClass`的类,其中包含一个整型成员变量`x`。我们在类外定义了输入输出运算符的重载函数,分别用`friend`关键字声明为友元函数。
在`main()`函数中,我们创建了一个`MyClass`对象`obj`,并且通过`cin`输入运算符和`cout`输出运算符来输入和输出这个对象的值。注意,我们使用了`>>`和`<<`操作符来调用输入输出运算符的重载函数。
阅读全文