a.cpp:33:52: error: ‘std::ostream& MyTime::operator<<(std::ostream&, MyTime)’ must take exactly one argument ostream & operator<<(ostream &cout,MyTime t){
时间: 2023-12-18 10:04:26 浏览: 144
cpp.rar_site:www.pudn.com
这个错误提示说明你定义的 `operator<<` 函数带有两个参数,但实际上应该只有一个参数。在 C++ 中,`operator<<` 函数通常定义为接受一个输出流对象和一个要输出的对象,如下所示:
```
ostream & operator<<(ostream &os, const MyType &obj) {
// 输出 obj 到 os 中
return os;
}
```
第一个参数是输出流对象,我们一般使用 `ostream` 类型的对象,比如 `cout`、`cerr` 等。第二个参数是要输出的对象,我们一般使用 `const` 引用,以避免拷贝对象。
在你的代码中,将 `MyTime` 类型的对象作为第二个参数传递给 `operator<<`,这是不正确的。你需要将其修改为只接受一个参数的形式:
```
ostream & operator<<(ostream &os, const MyTime &t){
// 输出 t 到 os 中
return os;
}
```
这样就可以通过编译了。
阅读全文