可能重复:
Forward declare FILE *
假设我想为C结构编写一个包装类,该结构由指向它的指针(如FILE
)加入 在C中你必须说typedef struct _iobuf
{
/*content of this struct*/
} FILE;
去除对象声明中的结构。现在我想在filec.h中执行以下操作:
class FILE;
class FileC
{
public:
FileC(const char* name,const char* mode);
~FileC();
private:
FILE* fptr;
};
在filec.cpp中:
#include "filec.h"
#include <cstdio>
//Implementation of FileC member functions
但是在编译时我只是抱怨不完整类型的struct FILE。切换包括命令,已经声明了FILE。我可以通过使用特定于实现的细节来解决它,或者使用void *来代替FILE *来回转换。但是怎么做得很好呢?使用iostream不是一个答案,因为它还包括stdio。