Привет всем У меня есть класс Foo, имеющий переменную члена fooAddress
Код в foo.h
Class Foo
{
String fooAddress() const;
void setFooAddress(String fooAddress)
....
String m_fooAddress;
}
Код в foo.cpp
String Foo::fooAddress() const
{
return m_fooAddress;
}
void Foo::setFooAddress(String fooAddress)
{
m_fooAddress = fooAddress;
}
Теперь у меня есть класс FooList, который имеет список foos
Код в 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: 'void Foo :: setFooAddress (String)': не может преобразовать 'this' указатель из 'const Foo' в 'Foo &'
Поскольку я не определил editFooList как функцию const, я не уверен, почему компилятор жалуется, когда я пытаюсь изменить m_fooArray.Can кто-то, пожалуйста, укажите мне, что я делаю неправильно?
я изменил свой код на
void FooList::editFooList(Foo foo, int index)
{
m_fooArray[index].setFooAddress(foo.fooAddress());
}
и теперь он компилируется
foo::
а неFoo::
. Также я вижуQString
а неString
местами. Вы используете Qt вместо STL?