假設我的typedef的整數或整數陣列或任何已知類型:的typedef和操作符重載在C++
typedef int int2
然後我重載operator *爲INT2對,現在如果我初始化變量a和b爲INT。那麼我的*之間a和b是超載*?
我該如何實現重載一個int,同時也以int的方式使用*。我應該創建一個新的類型?
假設我的typedef的整數或整數陣列或任何已知類型:的typedef和操作符重載在C++
typedef int int2
然後我重載operator *爲INT2對,現在如果我初始化變量a和b爲INT。那麼我的*之間a和b是超載*?
我該如何實現重載一個int,同時也以int的方式使用*。我應該創建一個新的類型?
你需要的是一個Strong Typedef。
加速提供的版本,應該爲你工作,或者至少幫你解決你的需要:
http://www.boost.org/doc/libs/1_42_0/boost/strong_typedef.hpp
C不允許操作員重載。
假設你在談論C++:
運算符重載必須至少採用一個用戶定義類型的參數。 typedef
不會改變任何東西,因爲它不會引入新的類型,只提供同義詞。
也許用枚舉,而不是一個int?您可以爲枚舉定義自定義運算符。 – supercat 2010-08-11 17:18:10