假设我的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