Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: David 25. 07. 2012, 12:05:16

Název: C++ abstraktní třídy
Přispěvatel: 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
Název: Re:C++ abstraktní třídy
Přispěvatel: David 25. 07. 2012, 12:06:51
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
Název: Re:C++ abstraktní třídy
Přispěvatel: letranger 26. 07. 2012, 15:26:07
To je proto, že když chcete vyřešit nějaký problém, je třeba ho nejdřív správně zformulovat  ;)
Název: Re:C++ abstraktní třídy
Přispěvatel: Ondřej Novák 26. 07. 2012, 17:09:50
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.  :)