无法转换这个'指针来自' const Foo'到' Foo&'错误

时间:2014-11-18 00:04:20

标签: c++ c++11 const

大家好我有一个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:&#39; void Foo :: setFooAddress(String)&#39; :不能转换这个&#39;指针来自&#39; const Foo&#39;到&#39; Foo&amp;&#39;

由于我没有将editFooList定义为const函数,我不确定为什么编译器在我试图修改m_fooArray时抱怨。有人请指出我做错了什么?

1 个答案:

答案 0 :(得分:0)

我将代码更改为

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

现在正在编译