的问题是,如果我能找到一种方法,使运营商的参数化超载,即代替元多的运算符重载
template <class T>
class A
{
private:
T m_var;
public:
operator T() const { return m_var; }
const A operator+ (const A& r_var) const { return m_var + r_var; }
const A operator- (const A& r_var) const { return m_var - r_var; }
const A operator* (const A& r_var) const { return m_var * r_var; }
const A operator/ (const A& r_var) const { return m_var/r_var; }
...........
}
有这样的事情
template <class T>
class A
{
private:
T m_var;
public:
operator T() const { return m_var; }
const A operator 'X' (const A& r_var) const { return m_var 'X' r_var; }
...........
}
其中“x”将采用值+, - ,*,/,并以这种方式避免重复相同的模式代码。提前致谢。
您可以使用宏 – Cameron 2011-01-30 17:30:21