acehreli, mesajından alıntı:
Gordugun gibi, operatar+, 'const' olan bir nesne kullanmaya calismis oldu. Ya da ben seni anlamiyorum... :)
Ali
Yok ben sizi gayet iyi anladım :)
Şimdi bu operator+ işlevi:
Kod:
Karmasik Karmasik::operator+ (const Karmasik & ikinci) const
{
double reelyeni, sanalyeni;
reelyeni = this->reel_ + ikinci.reel_;
sanalyeni = this->sanal_ + ikinci.sanal_;
return Karmasik (reelyeni, sanalyeni);
}
Yani işte buradaki this const Karmasik* türünden olduğu için alt kısımda sizin yaptığınız gibi const bir nesneyi eşitliğin sağına yazmak durumunda kalıyoruz. Yani operator+ işlevini const olarak bildirsek de bildirmesek de eşitliğin sol tarafı bir sabit olamaz değil mi. Yani bu sonuc değişkeni.
Kod:
int main ()
{
const Karmasik sabit (1, 1);
const Karmasik degisken (1, 1);
Karmasik sonuc (0, 0);
sonuc = sabit.operator+ (degisken);
}
Ama benim bahsettiğim kısım şurasıydı:
Bende yukarıda verilen koda göre
Kod:
void Karmasik::Yazdir () const
{
cout << "reel =" << reel_ << "sanal" << sanal_;
}
ve
int main ()
{
Karmasik ilk (1, 1), ikinci (2, 2), ucuncu;
ucuncu = ilk + ikinci;
}
içinde ilk, ikinci ve ucuncu birer const Karmasik olmadığı için bu
void Karmasik::Yazdir () const
{
cout << "reel =" << reel_ << "sanal" << sanal_;
}
işlevini
void Karmasik::Yazdir ()
{
cout << "reel =" << reel_ << "sanal" << sanal_;
}
şeklinde yazabiliriz diye düşünmüştüm. Çünkü bir const Karmasik nesnemiz yok.
Bookmarks