<<
연산자 오버로드의 반환 유형이 std::string
인 경우 컴파일러가 오류를 고발하는 이유를 이해하는 데 문제가 있습니다. 이해하는데 도와 주실 수 있겠습니까?<< 연산자 오버로드로 인해 std :: string을 반환하는 중 오류가 발생했습니다
벨로우 (Bellow)는 재현 가능한 예이며, 이는 거대한 오류를 나타냅니다.
class XY
{
int X__;
int Y__;
public:
XY(int x, int y):X__(x), Y__(y){}
~XY(){}
std::string operator<<(const XY_cartesiano& c)
{
std::stringstream ss;
ss << "{ " << X__ << ", " << Y__ << " }";
return ss.str();
}
int x() const{return X__;}
int y() const{return Y__;}
};
void main()
{
XY a(1,2);
std::cout << a;
}
를이 문제가 아니라 대문자 다음에 밑줄로 시작하는 두 개의 연속 밑줄 ('X__','Y__') 및 이름을 포함하는 이름 구현에서 사용하도록 예약되어 있습니다. 코드에서 사용하지 마십시오. –