2011-10-23 91 views

回答

3

如果你正在考慮類似operator<swap,有一個經驗法則(儘管它並不非常嚴格或強制):

如果該功能只需要訪問類的公有接口,使它是一個免費的非會員功能。否則,使其成爲一個成員函數。 (或者,您可以考慮使用friend免費功能。)

請注意,對於運算符的重載,您至少需要一個操作數爲用戶定義的類型。

自由函數的設計優點是,如果要爲其適用的每個類實現一個操作符版本,則可以使其成爲模板並獲得M + N複雜性而非M * N。這可能與您的情況相關,也可能不相關。

另請參閱關於這個問題的Nawaz's very fine answer

+0

感謝您的回答,非常有幫助 – flumpb

相關問題