我聽說過關於類,但在課外的函數。我的意思是,這些對於類的實現是有用的,因爲它使用它,但它不在類體中,它在外面,在任何地方都沒有。 所以,我想知道,寫一個免費函數而不是隻寫一個成員函數有什麼意義?什麼是免費功能?
感謝您的回答。
我聽說過關於類,但在課外的函數。我的意思是,這些對於類的實現是有用的,因爲它使用它,但它不在類體中,它在外面,在任何地方都沒有。 所以,我想知道,寫一個免費函數而不是隻寫一個成員函數有什麼意義?什麼是免費功能?
感謝您的回答。
免費功能提供更好的解耦和界面清晰度。當大多數算法邏輯都由自由函數提供時,您的數據結構需要有明確的目的和適當的接口。其結果是代碼可以最小化耦合,這是更容易推理,測試和依賴。通常,數據結構應儘可能小和儘可能大以滿足一個單一的,特定的目的;數據結構應該通過合成來組合,並且邏輯應該由儘可能訪問數據的公共接口的免費函數提供。
成員函數可能是方便,當然它需要有一些成員功能,提供上述接口,但它是一個大滑坡,並做了錯誤的,當你結束了類似std::string
。
如果函數不需要保持狀態,那麼沒有理由使它成爲類的一部分。 考慮
int add(int a, int b) { return a + b; }
功能確實對自己的工作很好,它不需要一個類的對象。
嗯,好的,謝謝,我看到^^ – FeelZoR
應該說,'std :: malloc'是你想象中的更好的並行宇宙中的一員,以及如何改進軟件設計? –