2013-10-09 106 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文件是實現。 –

相關問題