Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

nasledjivanje klasa?

[es] :: C/C++ programiranje :: C/C++ za početnike :: nasledjivanje klasa?

[ Pregleda: 6415 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Fidelito_Castro
Fidelito_Castro
Subotica

Član broj: 143557
Poruke: 87
*.eunet.yu.



Profil

icon nasledjivanje klasa?26.04.2008. u 02:16 - pre 194 meseci
Molio bih vas za pomoc!Nasledjivanje klasa nikako ne uspevam da razumem.
A evo i mojih pitanja(odnose se na kod ispod):

1)Zasto prilikom definicije konstruktora klase C ne pozivam i konstruktor za klasu A, nego samo za klasu B?
2)Zar klasa C ne nasledjuje indirektno i podatke clanove klase A?
3)Ako nasledjuje pa kako cu te vrednosti da inicijalizujem,kada ne pozivam konstruktora klase A?
4)Isto se sve to odnosi i za konstruktor kopije? (pitanje 1,pitanje 3)?

Unapred zahvalan, i svako dobro!

Code:


// Nasledjivanje klasa
#include <iostream>


using namespace std;

//Definicija klase A
class A
{
    private:
        int broj;
    protected:
        int size;
    public:
        A(int,int);
};
//Definicija konstruktora - klasa A
A::A(int br, int vel): broj(br),size(vel)
{
}

//Javno nasledjivanje klase A
//definicja klase B
class B : public A
{
    private:
        double brzina;
    protected:
        int delovi;
    public:
        B(double, int);
};
//definicija konstruktora-klasa B
B::B(double speed, int parts): A(speed + 1,parts +1),brzina(speed),delovi(parts)
{
}
//Javno nasledjivanje klase B
//definicija klase C
class C:public B
{
    private:
        double stranica;
    public:
        C(double);
};
C::C(double length):B(length+1,length),stranica(length)
{
}
//Funkcija MAIN
int main()
{


    system("PAUSE");
    return EXIT_SUCCESS;
}
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.dynamic.sbb.rs.



+1 Profil

icon Re: nasledjivanje klasa?26.04.2008. u 09:57 - pre 194 meseci
Konstruktor klase C poziva konstruktor klase B, a kako B nasleđuje A onda će se automatski pozvati konstruktor klase A. To se odnosi i na default konstruktore i na copy konstruktore.
Koliko vidim, ovde nisu definisani ni default ni copy konstruktor ali u ovom slučaju ne bi trebalo da bude problema sa onima koje je generisao kompajler.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

Fidelito_Castro
Fidelito_Castro
Subotica

Član broj: 143557
Poruke: 87
*.eunet.yu.



Profil

icon Re: nasledjivanje klasa?27.04.2008. u 22:17 - pre 194 meseci
Znaci to se odigrava.To sam i pretpostavljao ali nisam bio siguran.
Hvala!
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.dynamic.sbb.rs.



+1 Profil

icon Re: nasledjivanje klasa?28.04.2008. u 11:53 - pre 194 meseci
Da, isto se događa i kod destruktora ali u obrnutom redosledu: konstruktori se pozivaju prvo od roditeljskih klasa a destruktori prvo od nasleđenih klasa.

Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: nasledjivanje klasa?

[ Pregleda: 6415 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.