2016-09-07 4 views
2

모든 곳에서 모든 사람이 몇 줄에서 < < 연산자를 오버로드하는 것을 보았습니다. 매우 단순 해 보이지만, 어떤 이유로 인해 코드에 < < 연산자가 오버로드되지 않습니다."<<"연산자를 오버로드 할 수 없습니다.

friend std::ostream& operator<<(std::ostream& os, const Test& test); 

을 그리고 내 통화 당에서 내가 가진 : 내 .H에서

내가 가진

std::ostream& operator<<(std::ostream& out,const DeckOfCards& deck) { 
    out << "oi"; //just testing with a normal string before i try methods 
    return out; 
} 

그리고 마지막으로 메인 함수에서 내가 가진 :

Test* test = new Test(); 
std::cout << "output is: " << test << std::endl; 

수 누군가 내가 뭘 잘못하고 있는지 말해줘? 미리 감사드립니다.

+3

불필요하게 new/delete를 사용하지 마십시오. –

답변

6

방법이 시도에 대해 :

std::cout << "output is: " << *test << std::endl; 

당신의 코드에서 포인터가 아닌 객체를 보내고 cout 있습니다.

+1

와우 나는 시험 후에 애 스터 릭스를 넣지 않고 전에 ... 빨리 대답 해줘서 고마워. – Ky6000

관련 문제