c++ - 如何最有效地从重载运算符返回多个值? (C++)

标签 c++ overloading

我有一个包含实数和虚数的“复数”类。我正在尝试重载 + 运算符,以便我可以将实数加到实数,将虚数加到虚数,但我在这里撞墙了。

在函数中,我可以轻松获取值。然而,归还它们是个婊子。

我的计划是也重载“=”运算符,这样我就可以走了

复杂的a、b、c;

(设置a和b)

c = a + b;

然后让 a+b 返回一个复数,然后让复数 c 等于 a+b 返回的复数

关于这是否是一条可行的途径有什么看法吗?

是否可以更轻松地完成任何意见?

最佳答案

将它们作为复数返回!例如

const complex operator+(const complex &a, const complex &b)
{
    return complex(a.re + b.re, a.im + b.im);
}

你不需要重载operator=;编译器将为您生成一个逐个元素复制的文件,这可能足以满足复杂类的需求。

关于c++ - 如何最有效地从重载运算符返回多个值? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4119619/

相关文章:

c++ - 如何知道 gcc 选择哪个函数重载

C++ 模板 : Choosing overloaded functions using implicit conversion to template instantiated type!

c++ - unique_ptr 的 vector ,继承?

c++ - 内存访问冲突

c++ - 如何正确地将输出组织成列?

c++ - std::threads 是在用户空间还是内核空间中管理的?

c++ - C++构造函数如何初始化其类的对象?

c++ - 为什么 auto 不能用于重载函数?

c++ - 通过重载 < 对自定义对象的 vector 进行排序

java - 具有不同签名但相同主体的功能