Итак, я строю класс, для простоты я его здесь просто ошарашу.
Это дает ошибку компилятора: «Ошибка: объект имеет спецификаторы типа, которые не совместимы с функцией-членом. "
Это код:
ostream& operator<<(ostream& out, const Foo& f)
{
for (int i = 0; i < f.size(); i++)
out << f.at(i) << ", ";
out << endl;
return out;
}
функции at (int i) возвращает значение из массива с индексом i.
Если я удаляю constКлючевое слово от Foo, все отлично работает.Почему?
РЕДАКТИРОВАТЬ: По запросу, объявления для функций-членов.
.h
public:
int size(void);
int at(int);
.cpp
int Foo::size()
{
return _size; //_size is a private int to keep track size of an array.
}
int Foo::at(int i)
{
return data[i]; //where data is an array, in this case of ints
}