Şimdi Ara

C++ Operatörlerin Aşırı Yüklenmesi Önemli mi?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
549
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Şu an öğrendiğim konudur. Hiç hoşuma gitmedi ve fazla işime yarayacağını düşünmüyorum. Geçmeli miyim yoksa değer mi öğrenmeme?



  • Yani mantiken normal metotlar kullanarak da yapabilirsin yapmak istedigin seyi. Ama hem pratiklik sagliyor hem de kodun güzel görünmesini sagliyor bence, üstelik zor bir konu da degil neyini anlamadin ? Cünkü bunu anlamadiysan muhtemelen bazi temel konseptlerde de sikintin vardir

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • cwr kullanıcısına yanıt
    Mantığını anladım ama mesela aşağıda yazdığım kodda +'yı overload larken parantezin içinde & ve d filan yazıyor onlar ne demeye çalışıyor anlamadım. Referans mı yapıyor acaba, ama d ne orda?


    #include <iostream>
    using namespace std;

    class Daire
    {
    public:
    double r;
    double alan()
    {return 3.14*r*r}

    Daire operator+(const Daire& d) // + operatörü aşırı yükleniyor
    {
    Daire daire;
    daire.r = this->r + d.r;
    return daire;
    }

    };

    int main()
    {
    Daire daire1, daire2, daire3;

    daire1.r=1.0
    daire2.r=2.0
    cout<<"d1 alan="<<daire1.alan()<<endl;
    cout<<"d2 alan="<<daire2.alan()<<endl;
    daire3 = daire1+daire2;
    cout<<"d3 alan="<<daire3.alan();

    return 0;
    }




  • Ordaki & isareti nesnenin hafizadaki adresini aliyor. Bu sekilde 'd' ordaki daire2 nin referansi oluyor. 'd' yi daire2 olarak dusun.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • RandomT R kullanıcısına yanıt
    Anladım sağol.
  • Operatör overloading C++'da işin sanat noktasıdır hocam. Diğer C türevi dillere göre çok mühim bir konu bana sorarsanız.
  • arbak A kullanıcısına yanıt
    Anladım hocam, teşekkür ederim cevabın için.
  • Sordugun yerde overload+'in 2 tane parametresi olmak zorunda malum toplama yaptigi için, biri zaten this'den geliyor (isleme dahil oldugu class'in instance'inin kendisi) digerini de sen metodun parametresi olarak eklemek durumundasin ki o da burda d oluyor. & koymasinin sebebi ise call by reference yapmasi. Senin örnekte kullanisina bakarsak overload metodunun implement kisminda this=&daire1 ve d = daire2 olmus gibi düsün.



    < Bu mesaj bu kişi tarafından değiştirildi cwr -- 15 Kasım 2015; 15:08:29 >
  • cwr kullanıcısına yanıt
    Hocam this olayı ve referans yapmayı pek anlamamışım. Bi tekrar edicem onları. Onun dışında d koymasının sebebini anladım. Teşekkürler cevabın için.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.