이것은 제대로 작동하지 못하는 오버로드 부분입니다.C++ Stringstream 값이 올바르지 않습니까? 결과는 0입니까?
HexColour HexColour::operator+(const HexColour& other) const
{
HexColour temp;
stringstream r,g,b;
stringstream ro, go, bo;
int x, y, z;
int xo, yo, zo;
r << hex << colour[2] << colour[3];
g << hex << colour[4] << colour[5];
b << hex << colour[6] << colour[7];
r >> x;
g >> y;
b >> z;
ro << hex << other.colour[2] << other.colour[3];
go << hex << other.colour[4] << other.colour[5];
bo << hex << other.colour[6] << other.colour[7];
ro >> xo;
go >> yo;
bo >> zo;
if((x + xo) > 255)
x = 255;
else
x = x + xo;
if((y + yo) > 255)
y = 255;
else
y += yo;
if((z + zo) > 255)
z = 255;
else
z += xo;
cout << x << " anwer" << endl;
cout << y << " anwer" << endl;
cout << z << " anwer" << endl;
여기까지 모든 것이 완벽하게 작동합니다. 이것은 문제 부분입니다 :
r << hex << x; // PROBLEM
g << hex << y; // PROBLEM
b << hex << z; // PROBLEM
r 값은 0입니다. 왜 그런가요?
cout << hex <<r << endl;
temp.colour = "0x" + r.str() + g.str() + b.str();
return temp;
}
위에 인쇄 된 부분은 올바른 정수 값이지만 r은 새로운 16 진수 값이 아닙니다 ?? 사용
안녕하세요. SO! 컴파일하고 분석 할 수 있도록 자급 자족 코드를 게시하십시오. 즉, 주요 기능을 사용하는 주 기능이 제공됩니다. – lpapp
@ LaszloPapp가 방금 말한 것에 따라 확장하십시오 : [SSCCE] (http://sscce.org/) – Borgleader
그리고 평범한 영어로 넣으십시오 : 'colors []'WTF? 또한 : _should_ 일어날 무엇입니까? – sehe