我正在構建某種神經網絡庫。由於我以前從未建立過任何圖書館,因此我對這種風格有一些疑問。
在我的項目有,例如以下類別:限制函數名稱空間
NeuralNetwork, Layer, Util
都在同一個命名空間。現在,Layer
和Util
需要有一些公共職能,因爲他們將在NeuralNetwork
中被調用。但是因爲NeuralNetwork
是唯一可以訪問「世界其他地方」的類(並且順便說一句,創建一個單一的Layer
對象沒有任何意義)。
那麼有什麼辦法可以在那個名字空間的其他類中使用這些函數嗎?還是有更優雅的方法?我想擴展這個類,只做私有函數,但這沒有任何意義,並且會使代碼更醜,因爲主類不是從其他類派生出來的,而是利用它們。
瞭解生產質量圖書館做什麼的最好方法是檢查它們。 – StoryTeller
即使是你應該解決的問題,我也在談論什麼?或者你只是和它一起生活,並希望沒有人會考慮用它做出奇怪的事情。 – po0l
@ po0l:如果你在'Util.h'中定義'Util',並且你只在'NeuralNetwork.cpp'中使用'Util.h',而不是'NeuralNetwork.h',你不需要分發'Util.h '給你的用戶。即使你提供了整個源代碼,只將公共頭文件放入'include /'並將實現內部頭文件保存在'src /'中也是很常見的。 – MSalters