可能重复:
转发声明文件 *
假设我想为 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
但是在编译时,我只是抱怨不完整的类型结构文件。切换包含顺序给出 FILE 已经被声明。我可以通过使用特定于实现的细节来解决它,或者使用 void* 而不是 FILE* 来回转换。但是如何做得很好呢?使用 iostream 不是一个答案,因为它还包括 stdio。