Şimdi Ara

Aritmetik İşleçlere Aşırı Yükleme

Bu Konudaki Kullanıcılar:
1 Misafir - 1 Masaüstü
5 sn
5
Cevap
0
Favori
502
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba, aşağıdaki kod (5,7) ve (9,3) kordinatlarının x ve y lerini toplayıp yazdırıyor. "testSinif operator+ (testSinif);" satırındaki operator+ tanımı tam anlayamıyorum. türü sınıf_adı :: operator işleç (argüman listesi) argüman listesi tam olarak nedir ? Ora ile beraber "//+ işleci testSinif sınıf için aşırı yükleniyor.." açıklaması altındaki tanımdan da hiçbişey anlamadım. Yardımcı olabilirseniz sevinirim.

     
    #include <iostream>
    using namespace std;

    //Sınıf tanımlanıyor..
    class testSinif
    {
    public:
    int x,y;
    testSinif () {x=0;y=0;}
    testSinif (int,int);
    testSinif operator+ (testSinif);
    };

    testSinif::testSinif (int a,int b)
    {
    x=a;
    y=b;
    }

    //+ işleci testSinif sınıf için aşırı yükleniyor..
    testSinif testSinif::operator+ (testSinif param)
    {
    testSinif gecici;
    gecici.x=x+param.x;
    gecici.y=y+param.y;
    return(gecici);
    }

    int main()
    {
    testSinif a (5,7);
    testSinif b (9,3);
    testSinif c;
    //İki nesne toplanıyor..
    //+ işleci operator+ () işlevini çağırır...
    c=a+b;
    cout<<c.x<<"\n";
    cout<<c.y<<"\n";

    system("pause");


    return 0;

    }







  • quote:

    Orijinalden alıntı: SKULLAS

    Merhaba, aşağıdaki kod (5,7) ve (9,3) kordinatlarının x ve y lerini toplayıp yazdırıyor. "testSinif operator+ (testSinif);" satırındaki operator+ tanımı tam anlayamıyorum. türü sınıf_adı :: operator işleç (argüman listesi) argüman listesi tam olarak nedir ? Ora ile beraber "//+ işleci testSinif sınıf için aşırı yükleniyor.." açıklaması altındaki tanımdan da hiçbişey anlamadım. Yardımcı olabilirseniz sevinirim.

     
    #include <iostream>
    using namespace std;

    //Sınıf tanımlanıyor..
    class testSinif
    {
    public:
    int x,y;
    testSinif () {x=0;y=0;}
    testSinif (int,int);
    testSinif operator+ (testSinif);
    };

    testSinif::testSinif (int a,int b)
    {
    x=a;
    y=b;
    }

    //+ işleci testSinif sınıf için aşırı yükleniyor..
    testSinif testSinif::operator+ (testSinif param)
    {
    testSinif gecici;
    gecici.x=x+param.x;
    gecici.y=y+param.y;
    return(gecici);
    }

    int main()
    {
    testSinif a (5,7);
    testSinif b (9,3);
    testSinif c;
    //İki nesne toplanıyor..
    //+ işleci operator+ () işlevini çağırır...
    c=a+b;
    cout<<c.x<<"\n";
    cout<<c.y<<"\n";

    system("pause");


    return 0;

    }


    operator+ demek, + yani toplama operatörüne toplama dışında başka görevler yükleyebiliriz.

    sınıf_adı :: operator işleç (argüman listesi) -> Buradaki argüman listesi dediğimiz bildiğimiz argümanlar.
    Örneğin void fonk(int a=0, float b=2.5, char ch='e', string d='Deneme'){} Fonk. İçindekiler Argümandır.



    testSinif gecici;
    gecici.x=x+param.x;
    gecici.y=y+param.y;
    return(gecici);

    Burada ->

    testSinif gecici; ile, class'da bir obje tanımlamış oldun.

    gecici.x=x+param.x; -> gecici.x 'teki x'imiz X1,Y1'deki X... ,,, param.x'teki X ise X2,Y2 deki X...
    yani (5,7) ilk gecici.x 'TEki x 5 sayısı, (9,3) param.x'teki ise 9 sayısına tekabül ediyor.

    gecici.y=y+param.y; -> aynı üstteki gibi. Buradada y koordinatları için aynı şey yapılmış.

    Böylelikle X1+X2 ve Y1+Y2 'yi toplamamız sağlanacak.

    Koaly gelsin.




  • Tüm sorularıma ilgi gösterip yanıtlıyorsun, yardımcı oluyorsun gerçekten çok teşekkürler. Bi sorum daha olacak 2 kordinat toplamak için gecici.x=x+param.x; kullanıyoruz peki 3 veya daha fazla kordinatımız olsaydı nasıl bir tanım yapacaktık yani x1 + x2 + x3 ... gibi (x1,y1) (x2,y2) (x3,y3) gibi 3 kordinatı topluyor olsaydık ??
  • quote:

    Orijinalden alıntı: SKULLAS

    Tüm sorularıma ilgi gösterip yanıtlıyorsun, yardımcı oluyorsun gerçekten çok teşekkürler. Bi sorum daha olacak 2 kordinat toplamak için gecici.x=x+param.x; kullanıyoruz peki 3 veya daha fazla kordinatımız olsaydı nasıl bir tanım yapacaktık yani x1 + x2 + x3 ... gibi (x1,y1) (x2,y2) (x3,y3) gibi 3 kordinatı topluyor olsaydık ??


    Rica ederim. ne demek.

    3. bir X3Y3 olsaydı gene aynı şeiklde z derdin.. altına devam ederdin yada yanına devam ederdin.
  • Edit:....




    < Bu mesaj bu kişi tarafından değiştirildi boçi -- 31 Ocak 2021; 18:45:6 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.