我目前正在cpp。
中编写一个int矩阵我想添加一个打印功能,以下列方式打印数字:
1 2 3
7 6 9
19 23 9
(每2个间隔用一个空格分隔,在该行的末尾没有空格)。 所以我写了下面的代码:
std::ostream& IntMatrix::operator << (std::ostream& out) const
{
for(int i = 0; i < this->num_row; i++)
{
int j;
for(j = 0; j < this->num_col - 1; j++)
{
out << this->mat[i][j] << " ";
}
out << this->mat[i][j] << endl;
}
return out;
}
位于IntMatrix.cpp文件中。 但是,每次我尝试编译代码时,都会发生这种情况:
error: cannot bind 'std::ostream {aka std::basic_ostream<char>}' lvalue to 'std::basic_ostream<char>&&'
怎么办?
答案 0 :(得分:0)
而不是类成员函数使用全局命名空间的重载:
std::ostream& operator << (std::ostream& out, const IntMatrix& m) {
}
并将其声明为friend
的{{1}}。