熊在這裏。 我想弄清楚在什麼時候你會畫出關於在匿名與細節命名空間與私人與創建pimpl或朋友類中放置助手方法的界限。C++詳細命名空間vs匿名vs私人方法來上課vs pimpl vs.朋友類
這是我的要求..請讓我知道你的想法。
所以,如果我有 foo.hpp Foo.cpp中
,我有一些免費的功能bar
不訪問任何數據成員foo
,而且沒有客戶需要知道這些免費的功能,只foo.cpp
的方法需要它們直接將它們放在foo.cpp中的匿名命名空間中,並完成它。
但是,如果bar
需要訪問foo的數據成員,我們可以製作bar
foo的私有方法。但這意味着即使foo的客戶端並不在意bar
,但每次bar
都會發生變化,因此我們需要重新編譯。
(這部分我有點模糊): 然而,至少使用一個詳細的命名空間在這種情況下,有助於foo.hpp的讀者不要打擾看着bar
,因爲他們真的不需要知道。這是詳細命名空間約定的通用用例嗎?
現在,如果我們有一堆bar_1,bar_2 ... bar_n,它們有關聯在一起,他們需要訪問數據成員,我可以讓一個朋友類baz
foo,並把bar
s在那裏。
但是,如果我真的關心編譯時間並隱藏接口,我可以訴諸pimpl(在這部分中,再次非常模糊,通常如果我看到這一點,警鐘就會熄滅,並告訴我設計中的某些部分已關閉)。
你的想法...
請勿用英文,郵政編碼描述代碼。 –
***你的想法***我會繼續使用PIMPL。 https://herbsutter.com/gotw/_100/ – drescherjm