I는C++에서 두 객체 모두에 과부하 연산자 <<가 발생하면 어떻게됩니까? << a는 b를
cout << "Hello world"
cout
객체가 너무 오버 연산자를 가지고 우리가 strings
cout
으로 객체 멤버 함수를 전달할 수 있다고 생각했다.
그러나 일부 예제 코드에서는 연산자 오버로딩이 정의 된 클래스를 보았습니다. 그렇지 않은 경우에도
class GenericPlayer : public Hand
{
..
friend ostream& operator <<(ostream& os, const GenericPlayer& aGenericPlayer);
..
};
...
cout << aGenericPlayer << endl;
...
, 만약에 모두 cout
및 aGenericPlayer
과부하 operator<<
?
'cout'과'GenericPlayer' 둘 다 삽입 연산자를 정의했는지 묻습니다 <<')를'GenericPlayer'에 사용합니까? – GManNickG
'operator << '의 둘 이상의 정의가 주어진 피연산자와 일치하면 C++ 03 §13.3'[over.match]'에 나와있는 복잡한 과부하 해결 규칙에 따라 "최상"일치가 선택됩니다. "가장"일치하는 것이 고유하지 않거나 존재하지 않으면 오류입니다. –