我正在使用一个第三方库,它有一个声明如下:
typedef struct {} __INTERNAL_DATA, *HandleType;
我想创建一个类,在构造函数中接受一个HandleType:
class Foo
{
Foo(HandleType h);
}
不包括定义HandleType的头文件。通常,我会使用前向声明来实现这样的类型,但是我无法弄清楚语法。我真的想说类似于:
struct *HandleType;
但在GCC中提示“Expected identifier before *”。我唯一能想到的解决方案是这样写我的类:
struct __INTERNAL_DATA;
class Foo
{
Foo(__INTERNAL_DATA *h);
}
但这依赖于库的内部细节。也就是说,它使用了名称__INTERNAL_DATA,这是一项实现细节。
似乎应该可以在不使用__INTERNAL_DATA(库的实现部分)的情况下,提前声明HandleType(公共API的一部分)。有人知道怎么做吗?
编辑:添加了更多我需要的细节。