我试图从链接它的可执行文件中隐藏在我编写的库的主类头中包含第三方文件。我的意思是:
我有一个我编写的库,它定义了 A 类。A 类继承自 B 类(在第三方库中定义)。例子:
// In A.h
#include “B.h”
class A : public B
{
A* something(A* val);
}
// In A.cpp
A* A::something(A*val)
{
// Do something
return val;
}
B 类的头文件对环境进行了一些更改,这些更改对我的库来说是理想的,但对链接我的库的任何可执行文件都是有害的。有人向我指出不透明指针作为一种潜在的解决方案,尽管我不知道如何使用它们来隐藏“B”。
有谁知道隐藏包含 Bh 的方法?对于解决方案,C++11 是可以的,但链接到其他依赖项(如 boost)不是一种选择。