21xrx.com
2024-12-22 22:51:53 Sunday
登录
文章检索 我的文章 写文章
C++ 中的运算符重载 (operator)
2023-07-07 00:52:43 深夜i     --     --
C++ 运算符重载 operator

C++ 是一种支持运算符重载(operator)的编程语言,它允许程序员重新定义一些操作符(比如 +、-、*、/、-> 等),为自定义数据类型赋予操作符的含义,实现更自然的代码和更高效的执行。运算符重载可以用来定义类中的操作符,也可以用来定义全局的操作符。

运算符重载的语法如下所示:


返回类型 operator 操作符 (形参表)

  // 定义函数体

例如,在自定义的类中定义一个加法运算符:


class Fraction

{

public:

  Fraction(int numerator = 0, int denominator = 1)

  : m_numerator(numerator), m_denominator(denominator) {}

  Fraction operator+(const Fraction& f)

  {

    return Fraction(m_numerator * f.m_denominator + f.m_numerator * m_denominator,

            m_denominator * f.m_denominator);

  }

private:

  int m_numerator; // 分子

  int m_denominator; // 分母

};

这里我们为 Fraction 类定义了一个加法运算符 +,该运算符返回一个新的 Fraction 类型对象,表示两个 Fraction 对象的和。

现在,我们就可以使用自定义的操作符来对 Fraction 类型的对象进行加法计算:


Fraction a(1, 2);

Fraction b(1, 3);

Fraction c = a + b;

在上面的代码中,我们创建了两个 Fraction 类型的对象 a 和 b,然后使用重载的加法运算符将它们相加,并将结果赋值给一个新的 Fraction 对象 c。

通过运算符重载,我们可以让自定义的类更加灵活和易用。一些常见的操作符,比如 +=、-=、*=、/= 等也可以被重载,允许程序员在使用时更加方便。

需要注意的是,运算符重载可能会牺牲代码的可读性和运行效率。在使用时应该谨慎考虑,确保操作符重载的实现不会影响程序的正确性和性能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复