2011-04-19 7 views

답변

4

이 보이는 사전에이 미안

#pragma once 

class ArrayIntStorage 
{ 
public: 
    void readFromFile(); 
    bool setReadSort(bool); 
    void sortStd(); 
    void sortOwn(); 

    ArrayIntStorage(void); 
    ~ArrayIntStorage(void); 
}; 

ostream& operator<< (ostream &out, const ArrayIntStorage &a); 
istream& operator>> (istream &in, ArrayIntStorage &b); 

덕분에 새로운 메신저 confuzzled, 하나의 오류는 "실종"입니다 다음과 같이 해당 라인 앞에 std 네임 스페이스 한정자를 붙이십시오.

std::ostream& operator<<(std::ostream& out,...) 
+4

또는'사용법 #include ' –

+0

무엇 'iosfwd'입니까? 들어 보지 못했습니다 ... –

+1

@Giovanni'ios' = iostreams'fwd' = forward, 즉 : 표준 iostream의 forward 선언 (전체 정의가 아님) – Jesper

1

OU 생략 포함

#include <istream> 
#include <ostream> 

참고 : 모든 표준 유형 istream 같은 라이브 std라는 네임 스페이스 내에서 ostream. std:: 또는

    • 접두사 그들이 네임 스페이스 (using namespace std;)를 사용 : 그래서 위해 당신도 할 필요가 사용할 수 있습니다. 이는 나중에 포함될 헤더 파일에 이름 충돌이 발생할 수 있으므로 헤더 파일에 대해서는 매우 나쁜 습관입니다.
  • +0

    ''iostream'에'istream'과'ostream'이 정의되어 있지 않습니다''iostream'은'cin','cout','cerr','clog'와 같은 것들입니다 –

    +0

    하나의 shouldn ' 헤더 파일에'using namespace'를 넣으면 많은 것들을 가져올 수 있습니다. 거기에는 없어야하는 전 세계적인 범위로 응고하십시오. – greyfade

    +0

    그래, 나는 그것이 헤더 파일이라는 사실을 생략했다. 나는 수정 사항을 추가 할 것이다. – julkiewicz

    3

    이 코드가 나타나는 문맥은 분명하지 않지만 오류는 ostreamistream이 정의되기 전에 이러한 선언이 나타나는 것이 좋습니다.

    올바른 순서로 올바른 헤더 파일을 포함하고 있습니까?

    0

    iostream include를 추가하고 프로토 타입을 클래스에 넣고 friend로 선언하십시오. 내 모바일에서 답장을 보내고 있기 때문에 더 자세한 정보를 제공 할 수 없습니다. 여기

    는 링크입니다 : 운영자 오버로드/Classlevelostreamoperatorandistreamoperator.htm "> http://www.java2s.com/Tutorial/Cpp/0200_Operator-Overloading/Classlevelostreamoperatorandistreamoperator.htm

    +0

    'istream'과'ostream'은'iostream'에 정의되어 있지 않습니다. 'iostream'은'cin','cout','cerr','clog'와 같은 것들입니다. –

    관련 문제