即使经过多年的C++是混淆了地狱了我..我 类实现运营商+混乱(指针与参考)
virtual CStatCounter& operator= (CStatCounter const& inSC);
和
virtual CStatCounter operator+(const CStatCounter& rhs);
而且我保持
vector<CStatCounter*> mStatistics
别的地方。现在我想要做的就是积累所有的价值。 在由STD被嘲笑后::积累,我切换到一个简单的循环滚我自己,仍然没有运气:
CStatCounter *iniCounter = new CStatCounter(0);
BOOST_FOREACH (CStatCounter *counter, mStatistics)
{
iniCounter = iniCounter+counter;
}
编译器(4.2的Xcode /铛)抱怨
Invalid operands to binary expression ('CStatCounter *' and 'CStatCounter *')
我可以将循环体更改为counter + counter,并且它仍然失败并显示相同的错误消息。
不应该足够聪明地隐式转换参考和指针吗? 我在这里错过了一些微不足道的东西吗?
我很困惑,为什么你加符返回'bool',而不是一个'CStatCounter' – Hoons 2012-01-06 17:25:04
周杰伦嗨,不回答你的问题,但如果你使用boost :: ptr_vector,而不是一个std ::指针的矢量你将迭代引用而不是指针。本来可以避免这种情况。 – Dennis 2012-01-06 17:25:56
因为..我太麻烦复制&粘贴!!!!D'OH!感谢那。应该返回一个CStatCounter当然... – Jay 2012-01-06 17:30:41