2014-11-18 2 views
0

Привет всем У меня есть класс Foo, имеющий переменную-член fooAddressНевозможно преобразовать «это» указатель из «сопзЬ Foo» к «Foo &» ошибки

код в foo.h

Class Foo 
{ 
String fooAddress() const; 
void setFooAddress(String fooAddress) 
.... 
String m_fooAddress; 
} 

кодекса в обув .cpp

String Foo::fooAddress() const 
{ 
return m_fooAddress; 
} 

void Foo::setFooAddress(String fooAddress) 
{ 
m_fooAddress = fooAddress; 
} 

Теперь у меня есть FooList класс, который имеет список Фоос

код в FooList.h

class FooList 
{ 
editFooList(Foo foo,int index); 
... 
private: 
List<Foo> m_fooArray; 
} 

Теперь мой код в FooList.cpp является

void FooList::editFooList(Foo foo, int index) 
{ 
m_fooArray.at(index).setFooAddress(foo.fooAddress()); 
} 

, но я получаю ошибку ошибка: C2662: 'недействительными Foo :: setFooAddress (String)': не может преобразовать 'это' указатель от 'const Foo' до 'Foo &'

Поскольку я не определил editFooList как функцию const, я не уверен, почему компилятор жалуется, когда я пытаюсь изменить m_fooArray.Can кто-то, пожалуйста, укажите мне, что я делать не так?

+2

Ваш C++ воспроизводится в этой публикации метко? В вашем коде есть 'foo ::', а не 'Foo ::'. Также я вижу «QString», а не «String» в местах. Вы используете Qt вместо STL? – Dai

+0

также "editFooList (foo foo, int index);" не следует компилировать. – ApplePie

+0

«Foo» балка пружины. –

ответ

0

я изменил код для

void FooList::editFooList(Foo foo, int index) 
{ 
m_fooArray[index].setFooAddress(foo.fooAddress()); 
} 

и теперь компилирует

+0

Это скопирует объект foo, который не кажется очень эффективный. –

Смежные вопросы