私が作成したライブラリのメイン クラス ヘッダーにサード パーティのファイルが含まれていることを、それをリンクする実行可能ファイルから隠そうとしています。つまり、次のとおりです。
クラス 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 など) へのリンクはオプションではありません。