클래스를 만들려고합니다. 간결함을 위해 여기에 멍청 할 것입니다.삽입 연산자, const 키워드로 인해 컴파일러 오류가 발생합니다.
이렇게하면 컴파일러 오류가 발생합니다. "오류 : 개체에 형식 한정자가 멤버 함수와 호환되지 않습니다."
이
코드이다 에서ostream& operator<<(ostream& out, const Foo& f)
{
for (int i = 0; i < f.size(); i++)
out << f.at(i) << ", ";
out << endl;
return out;
}
함수 인덱스 I에 배열로부터 값을 반환 (나는 INT).
Foo에서 const 키워드를 제거하면 모든 것이 효과적입니다. 왜?
EDIT : 요청 당, 멤버 함수에 대한 선언. 그렇지 않으면 const를 개체에 대해 조치를 할 수 .H
public:
int size(void);
int at(int);
통화 당
당신은 당신의 기능과 const를 같은 "크기"기능 "에"선언 할 필요가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
}
'Foo :: at'와'Foo :: size'는 어떻게 선언되어 있습니까? –
@James McNellis - 업데이트 – DivinusVox