gpt4 book ai didi

c++ - 将复数运算符+(double,complex) 实现为成员函数

转载 作者:行者123 更新时间:2023-11-30 01:17:48 25 4
gpt4 key购买 nike

我已阅读工作草案 N3797 的 13.5 部分,我有一个问题。让 complex 成为表示复数的类类型。我们可以定义如下操作符函数:

complex operator+(double d, complex c)
{
return *new complex(d+c.get_real(),c.get_imagine());
}

但是如何将这个运算符函数实现为一个复杂的成员函数呢?或者我必须在我打算使用它们的每个模块中声明这个运算符函数吗?

最佳答案

有两种方法可以在两种类型之间定义二元运算符重载,例如二元 + 运算符。

  1. 作为成员函数。

    当你将其定义为成员函数时,运算符的LHS是类的一个实例。运算符的 RHS 是函数的参数。这就是为什么当您将其定义为成员函数时,它只能有一个参数。

  2. 作为免费功能。

    这些函数必须有两个参数。第一个参数是运算符的左轴,第二个参数是运算符的右轴。

由于 double 不是一个类,您必须将 double 之间的 operator+ 重载定义为 LHS 和 complex 作为 RHS 作为自由函数,以 double const&double 作为第一个参数类型,以 complex const&complex 作为第二个参数类型。

关于c++ - 将复数运算符+(double,complex) 实现为成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23600934/

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