cplusplus-operatörün-aşırı-yüklenmesi

C/C++ Operatorlerin Aşırı Yüklenmesi (Operator Overloading)

C++’ da +,-,*,!,++ gibi operatörler fonksiyonlar yazılarak bu operatörlere yeni işlevler yüklenebilir. Fakat sadece C++’ da zaten var olan operatörlere aşırı yükleme yapılabilir.  Örneğin üs(^) operatörüne aşırı yükleme yapılamaz. Fonksiyonlar tanımlanırken operatörün orjinalinde var olan operand sayısı değiştirilemez. Yani toplama için tek operand veremezsiniz yine en az 2 operand vermeniz gerekmektedir. Ayrıca öncelik sıralamalarında bir değişiklik olmaz yine aynı şekilde öncelikleri vardır.

Aşağıdaki örnekte verilen kodlama ile + operatoru iki karmaşık sayıyı toplamak için aşırı yüklenmiştir. Programın çıktı ekranı üsttedir.

#include<iostream>
#include<conio.h>

using namespace std;

struct karmasiksayi
{
	float reel,sanal;
};

karmasiksayi operator+(const karmasiksayi &v1,const karmasiksayi &v2)
{
	karmasiksayi sonuc;
	sonuc.reel=v1.reel+v2.reel;
	sonuc.sanal=v1.sanal+v2.sanal;
	return sonuc;
}

void yaz (karmasiksayi c)
{
	cout<< "Reel="<<c.reel<<"  Sanal="<<c.sanal<<endl;
}

int main()
{
	karmasiksayi c1,c2,c3;
	c1.reel=3;
	c1.sanal=-1;
	c2.reel=2.5;
	c2.sanal=0.7;

	c3=c1+c2;//burada 2 karmasik sayi toplanmaktadir

	yaz(c3);

	_getch();
	return 0;
}
Processing your request, Please wait....