CPP |标准流打印错误

时间:2015-08-27 14:58:03

标签: c++

我目前正在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>&&'

怎么办?

1 个答案:

答案 0 :(得分:0)

而不是类成员函数使用全局命名空间的重载:

 std::ostream& operator << (std::ostream& out, const IntMatrix& m) {
 }

并将其声明为friend的{​​{1}}。