Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: David 25. 07. 2012, 12:05:16
-
Zdravím,
mám takový menší problém s vytvořením instance třídy, která je potomkem abstraktní třídy.
Ve zdrojáku není problém, ten funguje, jestliže nedědím z abstraktní třídy, ale jakmile chcu zdědit, tak mi to nedovolí vytvořit instanci.
class ZobrazeniInterface
{
public:
virtual void Vymaz() = 0;
virtual void ZapisPrimku(float x, float y) = 0;
virtual void ZapisBody(float x, float y) = 0;
virtual void Vypis() = 0;
};
class Zobrazeni : public ZobrazeniInterface
{
private:
char matice[30][30];
public:
void Vymaz()
{
// vlastni kod
}
void ZapisPrimku(int x, int y)
{
// vlastni kod
}
void ZapisBody(int x, int y)
{
// vlastni kod
}
void Vypis()
{
// vlastni kod
}
};
int main
{
Zobrazeni objectZobrazeni; -- ERROR -- cannot instantiate abstract class && object of abstract class type "Zobrazeni" isn't allowed
}
Fakt si nevím rady v čem dělám chybu, prosím o radu ..
Dík
-
To je zajimavy, clovek pozada o radu a hned jak si to po sobe precte, tak mu dojde, ze v abstrakni tride pouziva datovy typ FLOAT a potomkovi INT :))
a uz to najednou jede
-
To je proto, že když chcete vyřešit nějaký problém, je třeba ho nejdřív správně zformulovat ;)
-
Většina služných překladačů pod tuto hlášku napíšou, které metody jsou abstraktní a ve kterém souboru a na kterém řádku se nacházejí (někdy člověk jako bonus obdrží i číslo sloupce). A většina slušných editorů umí postavit na to místo kurzor. :)