1
숫자 형 클래스를 구현하려고합니다. 내가 STL 벡터static_cast의 신비한 동작
typedef float ArithmeticF;
typedef QVector<ArithmeticF> VectorFloat;
class VectorF : public VectorFloat
{
/// appends the rightSide to the end
VectorF& operator << (const VectorF& rightSide);
}
나를 혼란 것은 유사하다 Qt는 템플릿 QVector을 사용하고하는 것은
VectorF& VectorF::operator << (const VectorF& rightSide)
{
static_cast<VectorFloat>(*this) << static_cast<VectorFloat>(rightSide);
return *this;
}
가 전혀 작동하지 않는다는 것입니다. 줄 단위로 디버깅하려고 시도하고 VectorFloat :: operator < <이 전혀 호출되지 않습니다. 오류가없고 프로그램이 컴파일되고 실행되지만 아무것도 수행하지 않습니다. 그러나이 작동합니다
VectorF& VectorF::operator << (const VectorF& rightSide)
{
VectorFloat a = static_cast<VectorFloat>(*this);
VectorFloat b = static_cast<VectorFloat>(rightSide);
a << b;
*this = VectorF(a);
return *this;
}
그래서 그것을 왜 난 그냥 궁금합니다. 나는 static_cast 명령을 파고 들려고했지만, 알아낼 수는 없다.
도와주세요.
이제 알게되었습니다! 고마워요! –
답변이 가장 도움이된다면 답안 옆에있는 "진드기"를 클릭하는 것이 관례입니다 :) 어떤 경우에도 도움이 될 수있어서 기쁩니다! – Xion