2013-10-09 50 views
2

在C++中编写库时,我们需要将实现隐藏在头文件中。但是我们需要包含源文件以使库工作。但用户可以很容易地在你的库中找到你的源文件。那么如何隐藏源文件呢?着名的图书馆如boost有什么作用?如何阻止客户端检查库中的源代码

+1

boost不会以任何方式隐藏源。它完全开放。 – drescherjm

+2

以二进制形式分发库+头文件? (注意:人们仍然可以逆向工程)否则不可能。 – user2802841

+0

如果你给他们的源,我没有看到任何方式来隐藏它.. – drescherjm

回答

1

您不能隐藏头文件中的源代码。唯一的办法是把代码放在你的.cpp文件中,这样它就不能被查看。此外,如果速度是一个问题,您可以使函数inline要求编译器以这种方式优化它们。

STL并增加了源代码,以便您可以阅读它(但由于它们使用的命名约定而不易阅读)。

+0

如果客户端可以找到您的源文件,隐藏实现有什么用处?顺便说一句,我不认为我发现任何与源文件中的主要boost库有关的实现。 – Blip

+0

@VictorPrograss然后你看错了地方。 boost的完整源代码可以免费下载。 – drescherjm

+1

@VictorPrograss,就是这一点。在将要在.hpp文件中分发模板代码时,隐藏实现是没有用的。 boost库.hpp文件是实现。 –

相关问题