C++ abstraktní třídy

David

C++ abstraktní třídy
« kdy: 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


David

Re:C++ abstraktní třídy
« Odpověď #1 kdy: 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

Re:C++ abstraktní třídy
« Odpověď #2 kdy: 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  ;)

Re:C++ abstraktní třídy
« Odpověď #3 kdy: 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.  :)