Ez a két módszer különbözik egymástól?
//Ez:
class Mammal
{
public:
virtual void Sleep()const {cout <<"Mammal alszik \n";}
protected:
private:
};
class Dog: public Mammal
{
public:
virtual void Sleep()const {cout <<"Dog alszik \n";}
protected:
private:
};
//És ez között:
class Mammal
{
public:
virtual void Sleep()const {cout <<"Mammal alszik \n";} //És itt csináljak virtualis destruktort?
protected:
private:
};
class Dog: public Mammal
{
public:
void Sleep()const {cout <<"Dog alszik \n";} //itt csináljak virtualis destruktort?
protected:
private:
};
//Van különbség?
Ha a Dog osztályból is akarsz örököltetni egy másik osztályt, és együtt akarod kezelni őket Dog-ként vagy Mammal-ként, viszont az új osztályod Sleep metódusát felülírod (ahogy a Dog-ban a Mammal-ét), akkor különbözik.
Ha a Dog-ból nem örököl semmi, akkor mindegy, hogy virtuális-e vagy sem, ha minden igaz...
1. Miért nem próbálod ki?
2. Nincs különbség, virtuális függvény a leszármazottakban automatikusan virtuális, még ha nem is írod ki.
Köszi.
Adtam megint zöld kezet mindkettőtöknek. :)
Első vagyok.
Szóval akkor iostream pontosított, és _egyáltalán_ nincs különbség. (Azt nem vágtam, hogy automatikusan virtuális lesz a leszármazott osztály adott metódusa.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!