Piszę małą bibliotekę macierzy w C ++ do operacji na macierzach. Jednak mój kompilator narzeka, a wcześniej tego nie robił. Ten kod pozostawiono na półce przez 6 miesięcy, aw międzyczasie uaktualniłem komputer z debian etch do lenny (g ++ (Debian 4.3.2-1.1) 4.3.2), jednak mam ten sam problem w systemie Ubuntu z tym samym g ++ .
Oto odpowiednia część mojej klasy macierzowej:
namespace Math
{
class Matrix
{
public:
[...]
friend std::ostream& operator<< (std::ostream& stream, const Matrix& matrix);
}
}
I „wdrożenie”:
using namespace Math;
std::ostream& Matrix::operator <<(std::ostream& stream, const Matrix& matrix) {
[...]
}
Oto błąd podany przez kompilator:
matrix.cpp: 459: error: 'std :: ostream & Math :: Matrix :: operator << (std :: ostream &, const Math :: Matrix &)' musi wziąć dokładnie jeden argument
Jestem trochę zdezorientowany tym błędem, ale z drugiej strony mój C ++ trochę się zardzewiał po tym, jak dużo Java napisałem przez te 6 miesięcy. :-)