可能重複全局函數靜態方法:
Namespace + functions versus static methods on a classC++:VS VS命名空間VS
哪裏是寫,例如最明智的辦法,一個函數,看起來像
Point intersection(const Line &L1, const Line &L2);
(假設我已經寫了類Point
和Line
)?
也許我可以使這個問題更確切的一點:我正在考慮以下選項:
- 寫全局函數(在line.h宣佈,它在line.cpp寫)
- 編寫該類的靜態方法
Line
- 使用命名空間。
- 寫,而不是一個功能
Point Line::intersection(const Line & otherLine);
我是最後一個選項不是一個球迷,因爲我不希望我的功能是「非對稱」(我有這樣的功能的其他幾個例子在我的代碼)。目前它們是全球性的功能(如選項1),但我明白這不是「良好的做法」。至於靜態方法和命名空間,我還不熟悉這些,所以我不確定。
您認爲什麼是「最佳」設計?
感謝您的見解!
編輯:給你一個我的項目規模的想法:50到100個班。
另一種方法是去與#2,但反轉的類。取決於你的設計。 Point Line :: intersection(const Line &L2); // L1是你打電話給 – MichaelH
的線對象謝謝,我想我可能會使用靜態函數然後 – Seub