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;
}
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
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.
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.
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 ??
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.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.