4 Mart 2018 Pazar

OVERLOADİNG

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.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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;
}

Hiç yorum yok:

Yorum Gönder

OVERLOADİNG

C/C++ Operatorlerin Aşırı Yüklenmesi (Operator Overloading) C++’ da +,-,*,!,++ gibi operatörler fonksiyonlar yazılarak bu operatörlere ...