Merhaba Arkadaşlar;
C++'da şöyle bir kod yazdım:
class Counter
{
private:
int count;
public:
Counter() : count(0)
{
}
explicit Counter(int count) : count(count)
{
}
Counter(const Counter& count) : count(count.count)
{
}
Counter operator +(int c) const
{
return Counter(count + c);
}
Counter operator +(Counter c) const
{
return Counter(count + c.count);
}
/* BURADA CONST YÜZÜNDEN HATA VERİYOR! */
int operator +(int c) const
{
return count + c;
}
void show() const
{
cout << count << endl;
}
};
Burada 'int operator +() ''const' fonksiyonunda const olmadığında uygulama çalışıyor fakat bu şekilde const konulunca hata veriyor. Neden bu şekilde const koyunca hata veriyor? Sonuçta sınıfın herhangi bir verisini değiştirmiyoruz.
Bir de mesela Counter sınıfında şöyle bir üye fonksiyon var:
void Counter::show(Counter c) const
{
cout << c.count << endl; // -> Burada c.count şeklinde c nesnesinin sınıfında private olarak
// belirlenen count verisine nasıl erişiliyor?
}
Teşekkürler!
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]