双目操作符重载 C++ Builder 示例

双目操作符重载.cpp

#include <vcl.h>
class Complex // 定义复数类
{
	double real;
	double imag; // 实部与虚部

public:
	Complex() {
		real = 0;
		imag = 0;
	} // 缺省构造函数

	Complex(double r, double i) {
		real = r;
		imag = i;
	} // 带参数构造函数
	Complex operator +(Complex &c2); // +函数(...)
	UnicodeString display();
};

UnicodeString Complex::display() {
	return "(" + (UnicodeString)real + "," + (UnicodeString)imag + "i)";
}

Complex Complex:: operator +(Complex &c2) {
	Complex c; // 创建对象c
	c.real = real + c2.real; // real:    this->real
	c.imag = imag + c2.imag; // imag:  this->imag
	return c;
}
// this指针指向调用它的对象,如下:
// Complex c1, c2;  c1+c2;  //this指向c1

 Unit1.cpp

// ---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "双目操作符重载.cpp"
#include "Unit1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
}

// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) {
	Complex c1(3, 4), c2(5, -10), c3;
	c3 = c1 + c2; // c3=c1.operator +(c2) ;
	Memo1->Text="双目操作符重载 C++ Builder演示";
	Memo1->Lines->Add("c1=" + c1.display());
	Memo1->Lines->Add("c2=" + c2.display());
	Memo1->Lines->Add("c1+c2=" + c3.display());
}
// ---------------------------------------------------------------------------

输出效果

代码下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸运骄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值