以下是我的头文件
#ifndef _ASYNCHRONOUSCLASS_H
#define _ASYNCHRONOUSCLASS_H
#include "stdafx.h"
#include <windows.h>
typedef int (*functionCall)(void *);
typedef void * voidPtr;
class AsynchronousFunction{
//int returnVal;
//functionCall fCall;
//voidPtr param;
//HANDLE m_hEvent;
struct pImpl;
pImpl* m_pImpl;
public:
AsynchronousFunction(functionCall fCall, voidPtr param);
~AsynchronousFunction();
void functionExecuter();
int result();
protected:
private:
};
#endif
在cpp文件中,我想实现包含以下细节的结构。
*//int returnVal;*
*//functionCall fCall;*
*//voidPtr param;*
*//HANDLE m_hEvent;*
我该如何实现?什么是合适的,前向声明或指针实现?
答案 0 :(得分:1)
在单个翻译单元中,您需要提供类型的定义。它看起来像:
struct AsynchronousFunction::Impl {
// members and functions...
};
请注意,我将pImpl
重命名为Impl
,习语中的p
用于指针,包含类中的成员将为Impl* pImpl;
。