cout << decrypted << endl; // output: Hello, world! 对<<进行重载
时间: 2023-08-20 09:08:43 浏览: 49
重载运算符 `<<` 可以让我们自定义输出对象时的行为。比如,我们可以重载 `<<` 让它能够输出我们自定义的类对象。
下面是一个示例,演示如何重载 `<<` 运算符输出一个自定义的类对象:
```cpp
#include <iostream>
using namespace std;
class MyClass {
private:
int value;
public:
MyClass(int v) : value(v) {}
friend ostream& operator<<(ostream& os, const MyClass& obj);
};
ostream& operator<<(ostream& os, const MyClass& obj) {
os << "MyClass(" << obj.value << ")";
return os;
}
int main() {
MyClass obj(42);
cout << obj << endl;
return 0;
}
```
输出:
```
MyClass(42)
```
在上面的示例中,我们定义了一个名为 `MyClass` 的类,它只有一个整型成员变量。我们在类的外部重载了 `<<` 运算符,并使用 `friend` 关键字将其声明为类的友元函数,这样它就能够访问该类的私有成员变量。
在 `operator<<` 函数中,我们将对象的信息输出到 `ostream` 对象中,然后返回该对象的引用。最后在 `main` 函数中,我们创建了一个 `MyClass` 类的对象,并使用 `<<` 运算符将其输出到标准输出流中。