c++’da operatör overloading

05 Mart 2010 – 00:41

operatö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

mikroskosmos@hotmail.com

Bookmark and Share

Post a Comment

Subscribe without commenting