无法在cpp对象和头文件中使用istream

klo*_*g15 0 c++ object istream

头文件

#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 */
Run Code Online (Sandbox Code Playgroud)

.cpp文件

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

iReader::iReader() {

}

iReader::iReader(istream *input){

}

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

iReader::~iReader() {
}
Run Code Online (Sandbox Code Playgroud)

(对不起,如果我没有正确复制代码)

所以这是我的代码.我正在创建一个新对象,我只是能够传入一个istream指针,并且有一个istream指针变量.它在netbeans中出错,说"无法解析标识符istream".它在我的主文件中工作正常,但不在此对象中.

Luc*_*ore 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 */
Run Code Online (Sandbox Code Playgroud)