gpt4 book ai didi

c++ - 元多运算符重载

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:19 26 4
gpt4 key购买 nike

问题是我是否可以找到一种方法来对运算符进行参数化重载,即代替

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”将取值+、-、*、/,这样可以避免重复相同的模式代码。提前致谢。

最佳答案

查看 boost::operators .它需要 += 和 *= 由您定义。其余(+,-,*,/,-=,/=) 由库定义。它也适用于二元运算符。

关于c++ - 元多运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4844322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com