Ciste virutalni trida – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Ciste virutalni trida – C / C++ – Fórum – Programujte.comCiste virutalni trida – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Koudis
~ Anonymní uživatel
145 příspěvků
1. 7. 2012   #1
-
0
-

Ahoj,

mam ciste virtualni tridu

class help
{
    public:
        pokus() {}

    virtual float Get() const = 0;
};

Jde nejak udelat, aby potomek tridy help, musel implementovat konstruktor, ktery bude prebirat napriklad dva parametry typu float?

Dekuji moc za odpoved

Koudis

Nahlásit jako SPAM
IP: 89.24.51.–
Reklama
Reklama
ingiraxo+15
Grafoman
1. 7. 2012   #2
-
0
-

#1 Koudis

Mám dojem, že na konstruktor se tohle nevztahuje vůbec, pokud vytvoříš třídu, kde bude aspoň jedna virtuální funkce, tak jí potomek musí přepsat, ale u konstruktoru to tak není... ono paradoxně instance z abstraktní třídy vytvořit jde, ale pouze jako pointer (mám dojem, že bez alokace), k tomu je třeba ten konstruktor v abstraktní třídě

Hlavně abstraktní třídy by imho neměli mít konstruktory ani, když v jiným jazyku vytváříš rozhraní, tak tam taky nejsou (v C++ rozhraní nejsou, takže se to řeší přes třídy s čistě virtuálníma funkcema)

Řešení: místo konstruktoru vytvoř např.virtuální funkci "init" jako void, kterou budeš volat v každým konstruktoru v odvozený třídě

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
vitamin+8
Grafoman
1. 7. 2012   #3
-
0
-

#1 Koudis
Bazova trieda nema co hovorit do konstruktoru odvodenej triedy. Mozes akurat vyzadovat aby bazova trida musela byt konstruovana len pomocou konstruktora s 2 float parametrami napr takto:

class help
{
    public:
        pokus() {}

    virtual float Get() const = 0;

    help() = delete;
    help(const help&) = delete;
    help(float, float);
};
Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 198 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý