假设有一个模板化类,重载算术运算符执行非常基本的操作(例如,对整数),这样我就可以
T a,b,c;
// ...
c=a+b;
有没有办法可以获得指令
T d=2*a;
与
具有相同的含义T d=(T)2*a;
没有明确的演员?
答案 0 :(得分:3)
是:创建一个隐式构造函数,为int
提取一个T
参数,并为operator*
提供一个重载T
,并为一个T
提供一个空闲运算符} S:
struct T
{
T(int);
T operator*(T const &) const;
friend T operator(T const & a, T const & b) { return a.operator*(b); }
// ...
};