Я пишу невелику бібліотеку матриць на 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: error: 'std :: ostream & Math :: Matrix :: operator << (std :: ostream &, const Math :: Matrix &)' повинен приймати рівно один аргумент
Я трохи збентежена цією помилкою, але потім мій C ++ став трохи іржавим після того, як робив багато Java протягом тих 6 місяців. :-)