C++ ile Operator OverLoading

Batuhan Düzgün tarafından yayınlanmıştır 19. April 2012 07:48

Merhaba arkadaşlar bu yazıda sizlere C++ dilinde operatörlerin aşırı yüklenmesini (Operator OverLoading) anlacatağım. C++ dilinde işaretçiler, aşırı yüklenme gibi kavramlar sıklıkla yer almaktadır. C++ dilinde bu detaylar yazılım mühendislerine bırakılmıştır. Yazılım mühendisleri bunları uygun şekilde programlayabilmektedir. 
 
Operatör Aşırı Yüklenmesi Nedir?
 
Operatörlerin aşırı yüklenmesi adından anlaşılacağı üzere ilgili operatöre işlevi dışında başka bir görev daha vermektir. Örnein: + operatörü bir toplama simgesidir. Ama biz A classından a1 nesnesi ile A classından a2 nesnesini toplamaya kalktığımızda derleyici bunu anlamayacaktır. Çünkü ne ile neyi toplayacağını bilemeyecektir. Yazılım mühendisleride bu operatörlerin işlevlerine programlayarak ek özellik kazandırırlar. 
 
Dev C++ derleyicisini açarak yeni bir C++ projesi oluşturulur. Aşağıdaki resimde C++ projesinin hazırlanması gösterilmiştir.
 
 
 
Ardından açılan pencerede "Console Application" seçilir. Aşağıdaki gibi gösterilmiştir.
 
 
 
 
Ardından kaynak kod sayfasına aşağıda açıklamalarıyla verilmiş olan kodlar yazılır.
 
 
#include <cstdlib>
#include <iostream>

using namespace std;

// Örnek bir sınıf yapısı tasarlanır.
class OrnekSinif {

// public anahtar sözcüğü altına yazılan her metod ve değişken public'tir.
      public :
             // iki nesneyi topladığımızda ikisinede ait olan bu değişken toplama işlemine tabi tutulacak.
             int ornekToplam;
             OrnekSinif() 
             {
                ornekToplam = 0;
             }
             // Metod imzası yazılır gövde sınıf dışında doldurulur.
             OrnekSinif OrnekSinif::operator+(OrnekSinif);
                   
};
// C++ dilinde :: işaretiyle dışsal metod bağlama yapılabilir.
// Metod imzası sınıf içinde yer alır. Metod gövdesi dışarıda doldurulur.
// operator aşırı yüklemesine örnek aşağıdaki gibidir.
OrnekSinif OrnekSinif::operator+(OrnekSinif ornekOther)
{
    int sonuc = 0;
    sonuc = ornekToplam + ornekOther.ornekToplam;
    OrnekSinif sonucObject;
    sonucObject.ornekToplam = sonuc;
    return sonucObject;
}

int main(int argc, char *argv[])
{
    OrnekSinif ornek1;
    OrnekSinif ornek2;
    ornek1.ornekToplam = 5;
    ornek2.ornekToplam = 7;
    OrnekSinif sonuc;
    
    // İki nesneyi topluyoruz ve sonuç aşağıda yazdırılır.
    sonuc = ornek1 + ornek2;
    
    cout << sonuc.ornekToplam <<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
Program F9 ile "Derle ve Çalıştır" yapılır. Ardından sonuç aşağıdaki gibidir. Her iki nesneyi + ile topladığımızda her iki nesnede yer alan int alanlar toplanır. Ekranda 5 ve 7 toplamı olan 12 yazar.
 
 
 
Bir sonraki makalemde görüşmek dileğiyle ...
 
Batuhan Düzgün
Bilgisayar Mühendisi
Endüstri Mühendisi 

Currently rated 2.5 by 4 people

  • Currently 2.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Qt ve C++

Comments

Add comment


(Will show your Gravatar icon)  

  Country flag

biuquote
  • Comment
  • Preview
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.

Batuhan Düzgün

Sakarya Üniversitesi 

Bilgisayar Mühendisi

Endüstri Mühendisi

Yeditepe Üniversitesi

Bilgisayar Mühendisliği Yüksek Lisans 

 sahibinden.com

   Kıdemli Uzman Yazılım Mühendisi  

E-Mail 

   batuhan.duzgun@sahibinden.com

   batuhan.duzgun@windowslive.com

  github.com/batux

 

Sayfalar

Calendar

<<  November 2018  >>
MoTuWeThFrSaSu
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

Yazıları geniş takvimde göster