我们可以通过重载添加两个对象吗?

时间:2020-08-17 03:56:57

标签: c++11

#include<iostream> 
using namespace std; 

class Complex { 
private: 
    int real, imag; 
public: 
    Complex(int r = 0, int i =0)  {real = r;   imag = i;} 
    Complex operator-(Complex const &obj) { 
         Complex res; 
         res.real = real + obj.real; 
         res.imag = imag + obj.imag; 
         return res; 
    } 
    void print() { 
        cout << real << " + i" << imag << endl; 
    }   
}; 
  
int main() 
{ 
    Complex c1(10, 5), c2(2, 4); 
    Complex c3 = c1 - c2; 
    c3.print(); 
} 

我正在使用operator -添加两个对象 我正在更改-号的主要功能。 该代码运行完美,并将实部和虚部加在一起

1 个答案:

答案 0 :(得分:1)

是的,可以将任何行为赋予操作员。

但是,建议避免操作符重载,除非它们具有通常的含义。

有时,库使用运算符来创建小型的领域特定语言(DSL),但是必须在简洁和可读性之间取得平衡。