//
// Created by 徐昌真 on 2024/10/18.
//
#include <iostream>
using namespace std;
//定义一个复数类
class Complex{
public:
Complex(): real(0), image(0) {
}
Complex(int real,int image){ //这是一个传参构造函数 用于传入成员变量的值
this->real = real;
this->image = image;
}
Complex add(Complex &other){ //这是一个成员函数 实现复数相加 传入一个成员函数的地址 这里使用引用 效率更高 避免址传递的时候 又创建一个complex的成员 导致内存过多消耗
Complex rec; //初始化一个成员
rec.real = this->real + other.real; //用rec成员来接收相加的值
rec.image = this->image + other.image;
return rec; //返回rec 避免c3不能接收值导致无法正常输出
}
Complex operator+(Complex &other){ //operator+运算符重载
Complex rec; //初始化一个成员
rec.real = this->real + other.real; //用rec成员来接收相加的值
rec.image = this->image + other.image;
return rec; //返回rec 避免c3不能接收值导致无法正常输出
}
void Print(){
cout << real << '+' << image << 'i' << endl;
}
private:
int real;
int image;
};
int main() {
Complex c1(1,2);
Complex c2(2,3);
Complex c3 = c2.add(c1);
c3.Print();
Complex d = c1 + c2; //重载运算符 用d接收结果 c1是左操作数 c2是右操作数 c1 + c2相当于c1调用了和c2相加 c1.operator+(c2)
d.Print(); //输出
return 0;
}
输出
标签:real,成员,image,运算符,面向对象,Complex,重载,rec,other From: https://blog.csdn.net/m0_63056769/article/details/143062799