나는 ++ 클래스와 C의 연산자 오버로딩과 주변에 땜질 된 한 - 최근 내가 코드를 건너 왔어요 난에 과부하 '< <'모두연산자 오버로드는 두 가지 방법으로 작동합니다.
cout << class_object
및
class_object << cout
일 경우 어떤에서 연산자 (개별 클래스 멤버를 반환). 내 클래스 멤버 int num 및 멤버 함수를 가지고
ostream& operator << (ostream& os)
{
os << num;
return os;
}
다음 함수는 클래스 외부에서 정의 -
ostream& operator<<(ostream& os, X &class_object)
{
return class_object << os ;
}
(가정하여 X 클래스가)
작동 왜 어떤 생각? 나는 그것을 알아낼 수 없습니다. 또한, 왜 TWO 함수 정의가 < < (클래스 외부에 하나, 내부에 하나)에 필요합니까? 그것 없이는 작동하도록하는 어떤 방법이든? 마음에 들지 않으면 나는 그 일에 열심히 일해야한다.
때문에. – juanchopanza
두 번째 함수는 무한 재귀를 발생시킵니다. – Nawaz
@Nawaz - 죄송합니다. 나는 수정했다. – Caife