2

可能重复:
转发声明文件 *

假设我想为 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。

4

0 回答 0