몇 년 후 C++이 날의 지옥을 혼란 .. 내 클래스는연산자 + 혼란 (참조 대 포인터)
virtual CStatCounter& operator= (CStatCounter const& inSC);
및
virtual CStatCounter operator+(const CStatCounter& rhs);
를 구현하고 나는
을 유지하고있어vector<CStatCounter*> mStatistics
어딘가에 있습니다. 이제 내가하려는 것은 모든 가치를 누적하는 것입니다. 표준에 의해 비웃었다 된 후 이 : 난 내 자신, 여전히 행운에 압연 간단한 루프로 전환했습니다 축적 :
CStatCounter *iniCounter = new CStatCounter(0);
BOOST_FOREACH (CStatCounter *counter, mStatistics)
{
iniCounter = iniCounter+counter;
}
컴파일러 (엑스 코드 4.2/연타)은 약
Invalid operands to binary expression ('CStatCounter *' and 'CStatCounter *')
불평
루프 본체를 counter + counter로 변경할 수 있으며 여전히 같은 오류 메시지와 함께 실패합니다.
참조와 포인터를 암시 적으로 변환하는 것이 현명하지 않아야합니까? 나는 여기에 사소한 것을 놓치고 있니?
나는 당신의 더하기 연산자는'bool' 아닌'CStatCounter' – Hoons
안녕 제이,하지 질문에 대한 답변을 반환하는 이유에 혼란 스러워요하지만 :: ptr_vector 대신 표준의 :: 포인터 대신 포인터 대신 참조를 반복합니다. 이 상황을 피했을까요? – Dennis
왜냐하면 .. 나는 카피 & 붙여 넣기에 너무 까다 롭다 !!!!도 오! 고마워. 물론 CStatCounter를 반환해야합니다 ... – Jay