使用前向声明而不是 void* C++

using forward declarations instead of void* C++

是否可以使用 前向声明 而不是 void* 或者首选使用 typedef ?

我在 API 中使用特定的 class。对于使用它的客户,class 由 void* 表示,因此客户不需要使用头文件。

这些选择哪个更好?

class A;
class b
{
    A* simple;
};

typedef void* A;
class b
{
    A simple;
};

你绝对可以使用类似的东西:

class A;

class B {
    A* the_a;
}

而不是

class B {
    void* the_a;
}

在你的 C++ 代码中,前者比后者更好。但是,除非确实需要,否则不要快速使用原始指针。

最后,我强烈建议您避免使用未明确指示类型是指针的名称来对指针类型进行类型定义,因为这会造成混淆(而且没有用)。