首页 > 解决方案 > 是否可以在不包含头文件的情况下在头文件中使用类,同时在 cpp 文件中使用相同的类?

问题描述

我正在尝试使用来自不同语言的闭源 C++ 库(只能访问头文件)中的类,但是在包含类的头文件时绑定生成器会失败。因此,我需要为该库编写一个 C++ 包装器,但我不能在包装器的头文件中包含该类的头文件,因为如果包含它,bindgen 将失败。

有没有办法在不包含的头文件中使用一个类,同时还允许单独读取该头文件(可能使用typedefor extern)?

我理想情况下想要的设置示例:

CompiledCode.hpp

class Foo {
    ...
}

wrapper.hpp

// Magic to allow me to use the class name Foo as a return type

Foo createFoo();

wrapper.cpp

#include "CompiledCode.hpp"
#include "wrapper.hpp"

Foo createFoo() {
    return Foo::create();
}

标签: c++header-files

解决方案


推荐阅读