Я пишу небольшую матричную библиотеку на C ++ для матричных операций. Однако мой компилятор жалуется, где раньше этого не было. Этот код оставлялся на полке в течение 6 месяцев, и между тем я обновил свой компьютер с debian etch до lenny (g ++ (Debian 4.3.2-1.1) 4.3.2), однако у меня та же проблема в системе Ubuntu с тем же g ++ ,
Вот соответствующая часть моего класса матрицы:
namespace Math
{
class Matrix
{
public:
[...]
friend std::ostream& operator<< (std::ostream& stream, const Matrix& matrix);
}
}
И «реализация»:
using namespace Math;
std::ostream& Matrix::operator <<(std::ostream& stream, const Matrix& matrix) {
[...]
}
Это ошибка, выданная компилятором:
matrix.cpp: 459: ошибка: 'std :: ostream & Math :: Matrix :: operator << (std :: ostream &, const Math :: Matrix &)' должен принимать ровно один аргумент
Я немного сбит с толку этой ошибкой, но опять же мой C ++ стал немного ржавым после того, как я много работал за те 6 месяцев. :-)