【发布时间】:2015-01-02 22:58:42
【问题描述】:
如果我从 ccfoo 调用 SetCFoo 它可以工作,但从迭代器(循环中)它不会。
class CFoo{};
class CCFoo
{
public:
CFoo *m_cf;
void SetCFoo(CFoo *cf)
{
m_cf = cf;
}
};
int main()
{
CCFoo ccfoo;
CFoo cfoo;
//ccfoo.SetCFoo(&cfoo); <-- It works
vector<CCFoo> v1;
v1.assign(5,*new CCFoo); // I don't care about leak because it is example
for(vector<CCFoo>::iterator it = v1.begin(); it != v1.end(); it++ )
{
*it->SetCFoo(&cfoo);
}
}
编译器给我以下错误: 应该忽略的无效值
【问题讨论】:
-
试试
it->SetCFoo(&cfoo); -
怎么不工作?如果编译器给你一个错误信息,你需要编辑你的帖子并包含它。如果是运行时错误,我们也需要知道。
-
好的。错误包含在主题中。
-
我非常怀疑编译器发出了错误“void value not ignored as it hould be”。 ;p
-
谢谢 πάντα ῥεῖ,它有效。
标签: c++ pointers reference iterator