c++’da operatör overloading
05 Mart 2010 – 00:41operatörler, tipler arasında çeşitli işlemler yapan işaretlerdir.aritmetik operatörler kendilerinde varolan işlevleri yerine getirmek için kullanılır,örneğin “+” operatörü toplama işlemi yapar ama bu toplama işlemini yaparken sadece aynı tipte olana değişkenleri toplamaya yarar.peki ben karmaşık sayılarda toplama yapacaksam bunu nasıl gerçekleştrecem?
işte burda c++daki operatöt overlaoading özelliği yardımımıza koşuyor.operatör overloading ile “+” operatörüne ekstra işlev yükleyebiliyorum,böylece istediğim şekilde “+” operatörünü kullanabiliyorum.aynı şekilde komplex sayılarda çıkarma işlemi yapmak için de “-” operatörüne özellik yükleyebiliyorum.
#include <cstdlib>//c++ kütüphaneleri
#include <iostream>
using namespace std;
void goster(double x,double y){ /*işlemler yapıldıktan sonra karmaşık sayıyı ekranda görmek için oluşturulmuş fonksiyon*/
cout<<x<<”i+”<<y<<”j”<<endl;
}
/*reel ve imajinel kısımları bir struct yapısının içinde tanımlıyorum çünkü her karmaşık sayının bir reeel bir de imajinel kısmı olur*/
struct Complex{
double Re;
double Im;
};
Complex operator+ (const Complex &a, const Complex &b){ //”+”ya işlev yükleme işi
Complex sum;
sum.Re=a.Re+b.Re;
sum.Im=a.Im+b.Im;
goster(sum.Re,sum.Im);//ekranda görebilmek için göster fonksiyonuna gönderiyoruz
}
Complex operator- (const Complex &x, const Complex &y){//”-” ye yüklediğimiz işlev
Complex dif;
dif.Re=x.Re-y.Re;
dif.Im=x.Im-y.Im;
goster(dif.Re,dif.Im);//ekranda görmek için
}
int main()
{
Complex sum,a,b,dif;
a.Re=3;
a.Im=5;
b.Re=-4;
b.Im=7;
sum= a + b;// “+”ya işlev yükledikten sonra karmaşık sayılarda toplama işlemi yapma
dif=a-b;//”-”ye işlev yükledikten sonra karmaşık sayılarda çıkarma işlemi yapma
system(”pause”);
}
OUTPUT
-1i+12j
7i-2j
deryagunduz.blogspot.com

