在C ++中使用typedef和operator重载

时间:2010-05-16 17:17:45

标签: c++ operator-overloading

假设我输入一个整数或整数数组或任何已知类型:

typedef int int2

然后我为int2对重载operator *,现在如果我将变量a和b初始化为int。那么a和b之间的*是否会超负荷*?

如何实现重载int,并且还使用* for int的方式。我应该创建一个新类型吗?

3 个答案:

答案 0 :(得分:9)

假设你在谈论C ++:
运算符重载必须至少使用一个用户定义类型的参数。 typedef不会改变任何内容,因为它不会引入新类型,只提供同义词。

答案 1 :(得分:5)

C不允许运算符重载。

答案 2 :(得分:5)

您需要的是 Strong Typedef

Boost提供适合您的版本,或者至少可以帮助您解决需求:

http://www.boost.org/doc/libs/1_42_0/boost/strong_typedef.hpp