2013-02-08 33 views
1

每次調用重載操作符時,是否可以調用默認函數? 例如,您有一個包含以米或碼爲單位的值的類,並且您希望在應用重載操作符之前檢查它們是否具有相同的單位。現在,我在每個重載操作符定義中都使用了一個checkCompatibility()函數,但如果對於任何重載的二進制操作自動發生,將會很方便。C++操作符重載:調用默認函數

+0

單位由不同的類表示嗎?就像,這個是「class Meter」的一個對象,這個是「class Yards」。 –

+0

不,單位信息只是另一個成員。 –

+0

至少使用單位的枚舉。或者更好,簡單的單元/值對類。在開始時會做一些工作,但可能會在以後節省很多工作。 – Dariusz

回答

1

沒有這樣的功能,但Boost.Units旨在解決單位轉換(在編譯時)的問題。你的函數需要一個quantity<length>作爲參數,並且庫確保傳入的任何東西都是兼容的,並處理單位轉換。