내 클래스 중 하나에 연산자 < <을 오버로드하려고합니다. 서명은 다음과 같이 진행됩니다C++ - friend 함수를 헤더 파일에 정의해야합니까?
friend std::ostream& operator<<(std::ostream& os, const Annuaire& obj)
나는 내가 .H에 정의하면, 통화 당에 정의는 운영자 < < 정확히 그러나, 1 개 인자를 말한다 파일을 시도, 그것은 컴파일/잘 작동합니다.
std::ostream& Annuaire::operator<<(std::ostream& os, const Annuaire& obj){ // ... }
는 헤더 파일에 정의 할 필요가 친구 함수와 아무 상관이 있나요 :
이 내가 .cpp 파일에 정의하는 방법이다?
당신은 ostream'와'istream' 바로 ... –
그래, 친구가 IStream을하고 그것이 의도적 인 당신이이 개 친구의 선언과 2 정의가 필요합니다 경우 CPP의 하나가, ostream에있다'가야 , 그렇지 않다면, 당신이 밖으로 또는 밖으로 스트림을 원한다면 따라 하나 또는 다른 수정 –
고마워, 그것은 복사 - 붙여 넣기 실수 어쨌든했다. – Pacane