2012-04-18 81 views
0

頭文件中使用的IStream無法以CPP對象和頭文件

#ifndef IREADER_H 
#define IREADER_H 
#include <iostream> 


class iReader { 
public: 
    iReader(); 
    iReader(istream *input); 
    iReader(const iReader& orig); 
    virtual ~iReader(); 
private: 
    Pixel *pixelData; 
    char *cData; 
    istream *input; 
}; 

#endif /* IREADER_H */ 

cpp文件

#include <iostream> 
#include <fstream> 
#include "Pixel.h" 
#include "iReader.h" 

iReader::iReader() { 

} 

iReader::iReader(istream *input){ 

} 

iReader::iReader(const iReader& orig) { 
} 

iReader::~iReader() { 
} 

(抱歉,如果我沒有將代碼複製在正確地)

所以這是我的代碼。我正在創建一個新的對象,我只能傳入一個istream指針,並且有一個istream指針變量。它在netbeans中出現錯誤,說「無法解析標識符istream」。它在我的主文件中工作正常,但不在此對象中。

+1

的std :: istream的? – young 2012-04-18 20:24:58

回答

5

您可能在主文件中使用了using namespace std;

需要判定istream

#ifndef IREADER_H 
#define IREADER_H 
#include <iostream> 
class Pixel; // <--- you should also forward declare Pixel 
class iReader { 
public: 
    iReader(); 
    iReader(std::istream *input); 
    iReader(const iReader& orig); 
    virtual ~iReader(); 
private: 
    Pixel *pixelData; 
    char *cData; 
    std::istream *input; 
}; 

#endif /* IREADER_H */ 
+0

哦,哈哈。這很明顯。謝謝! – klong15 2012-04-18 20:32:13