我有一个班级:
class Foo
{
std::string name_;
Foo(std::string name)
{
name_ = name;
}
std::string getName()
{
return name_;
}
}
然后我有一个这些类的填充向量:
std::vector<Foo *> bar_;
/* ... populate bar_ ... */
std::vector<Foo *>::iterator iter = bar_.begin();
while(iter != bar_.end())
{
std::cout << "Name: " << (*iter)->getName() << std::endl;
}
我的(* iter) - &gt; getName()无法正常工作,我收到此错误:
error: invalid cast from type ‘__gnu_cxx::__normal_iterator
答案 0 :(得分:0)
所以
struct Foo
{
std::string getName() const { /* ... */ }
};
或
class Foo
{
public:
std::string getName() const { /* ... */ }
};