C ++ + =运算符重载

时间:2018-04-24 06:56:29

标签: c++ operator-overloading c++17

我重载了+ =运算符,我的代码如下: 矩阵只是一个矢量>

如果我这样做:

matrix1+=matrix2;
cout<<matrix1; // i have overloaded <<

代码编译没有错误,但没有输出。 有人可以指出这有什么问题吗? 谢谢!

1 个答案:

答案 0 :(得分:2)

std::cout是缓冲输出流。这意味着您写入流的内容将写入缓冲区。只要遇到换行符,就会刷新此缓冲区,或者您使用以下命令手动指示流刷新缓冲区:std::basic_ostream::flush

在您的示例中,您可以在结尾处添加:<< '\n',或者您可以调用:cout.flush();两者都会刷新您的输出。如果没有缓冲流,例如std::cerr,则输出将被打印而不需要换行或刷新。

注意:换行字符刷新输出的原因是,在您的情况下std::cout指向行缓冲终端。如果没有,则必须手动拨打flush