PDA

Tam Sürümünü Görmek İçin : kalitim


quasimodo
21/05/2007, 19:06
class Nokta{
public :
Nokta(int _x = 0, int _y = 0)
: x(_x), y(_y) {}
protected :
int x, y;
};

class Daire : public Nokta{
public :
Daire(double _r = 0, int _x = 0, int _y = 0)
: Nokta(_x, _y)
{
r = _r;
}
private :
double r;
};
Birinci sorum turetilmis sinifin yapicisinda temel
sinifin yapicisini cagirken kullanim sadece bu sekilde degil mi?
(Cunku yapici miras alinamiyor degil mi?)

Ikinci sorum eger turetilmis sinifin yapicisindan temel sinifin
yapicisini bu sekilde kullanmazsam (cagirmasam) da varsayilan
yapici cagirilarak turetilmis sinif nesnesinin icindeki x ve y sifir olur
degilmi?

Ucuncu sorum temel sinifa bir yapici tanimlamazsam ve turetilmis
sinifin yapicisindanda sadece r ye deger versem ne olur?
Hata midir, yoksa x ve y ye rastgele degerlermi atilir?

Dorduncu sacma sorum rekursif miras gibi birseyler var mi?


golgepapaz
21/05/2007, 20:24
1. evet
2. evet cunku Nokta kurucusu varsayilan parametreli bir varsayilan kurucu.
3. eger sen Nokta ya kurucu tanimlamazsan derleyici senin icin bir tane yaratip, cagiracaktir, ama ici bos olucagi icin x ve y nin icerigi tanimsiz olacaktir
4. yok oyle bisiy, gerci soyle http://en.wikipedia.org/wiki/Curiously_Recurring_Template_Pattern ve soyle http://www.parashift.com/c++-faq-lite/multiple-inheritance.html#faq-25.8 bisiy var