即使經過多年的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