Avatar
Veganekk
Člen
Avatar
Veganekk:

Dobrý den
Dělám ukol na C++ a nechápu toto. Aplikace je konzolová.
Mám třídy Main, Úsecka, Čtverec, Obrazec.
Třída Obrazec obsahuje abstraktní třídu pro vykreslení.
Třída Úsečka je od děděna od Obrazece. Dále čtverec je od děděn od Úsečky.
A mám udělat pole pomocí, kterého to budu vypisovat neboli vykreslovat. Nevím jak na to. Prosím o radu

zde část kodu z mainu

Usecka U2(5);
        Ctverec C2(7);
        DutyCtverec D2(5);

        U2.Vypis();
        cout << endl;
        C2.Vypis();
        cout << endl;
        D2.Vypis();
        system("pause");
        Obrazce **ObrPointer;
        ObrPointer = new Obrazce*[3];

        ObrPointer[0] = U1;
        ObrPointer[1] = U1;
        ObrPointer[2] = U1;
Editováno 7.1.2015 17:53
Odpovědět 7.1.2015 17:50
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Odpovídá na Veganekk
Denis Homolík (Alfonz):

Prostě si udělej pole s typem Obrazec. Všichni potomci jdou uložit do proměné s rodičovským typem :)

Nahoru Odpovědět 7.1.2015 17:53
Vše je možné, dokud si to myslíte!
Avatar
Veganekk
Člen
Avatar
Veganekk:

Něco jako co jsem postnul ten kod nahoře nebo ne?

Nahoru Odpovědět 7.1.2015 17:53
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Veganekk
Člen
Avatar
Veganekk:

Trochu nechápu xD

Nahoru Odpovědět 7.1.2015 18:17
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Odpovídá na Veganekk
Lukáš Hruda (Luckin):

Trocha směrodatných informací by neuškodila.
Kus kódu vytržený z kontextu nám nic moc neřekne (například jakého typu je U1 nebo jaká operace se provádí nad prvky v poli). Také by bylo dobré říct co ti nefunguje (chyba při kompilaci nebo co program dělá / nedělá).

 
Nahoru Odpovědět 7.1.2015 18:54
Avatar
Veganekk
Člen
Avatar
Veganekk:

Cely kod v Mainu je tento

Usecka *U1 = new Usecka(5);
        Ctverec *C1 = new Ctverec(7);
        DutyCtverec *D1 = new DutyCtverec(5);

        Usecka U2(5);
        Ctverec C2(7);
        DutyCtverec D2(5);

        U2.Vypis();
        cout << endl;
        C2.Vypis();
        cout << endl;
        D2.Vypis();
        system("pause");
        Obrazce **ObrPointer;
        ObrPointer = new Obrazce*[3];

        ObrPointer[0] = U1;
        ObrPointer[1] = U1;
        ObrPointer[2] = U1;
Nahoru Odpovědět 7.1.2015 19:02
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Odpovídá na Veganekk
Lukáš Hruda (Luckin):

Všechno co děláš je, že pointer na úsečku U1 uložíš do prvních tří prvků pole. Pořád ale netuším, co ti na tom nefunguje, když s těmi prvky pole vůbec nic neděláš.
Když někoho žádáš o pomoc, nauč se nejdřív říct, co ti nefunguje, jinak ti těžko někdo poradí.

 
Nahoru Odpovědět  +1 7.1.2015 19:11
Avatar
Veganekk
Člen
Avatar
Veganekk:

Mám další problém mam ve třídě Obrazec metodu

#include "Obrazce.h"
Obrazce::Obrazce()
{
}
virtual void Obrazce::Vypis()=0;
#pragma once
class Obrazce
{
public:
        Obrazce();
        virtual ~Obrazce();
        virtual void Vypis()=0;
};
Usecka *U1 = new Usecka(5);
Ctverec *C1 = new Ctverec(7);
DutyCtverec *D1 = new DutyCtverec(5);

Usecka U2(5);
Ctverec C2(7);
DutyCtverec D2(5);

U2.Vypis();
cout << endl;
cout << endl;
C2.Vypis();
cout << endl;
D2.Vypis();
system("pause");
Obrazce **ObrPointer;
ObrPointer = new Obrazce*[3];

ObrPointer[0] = U1;
ObrPointer[1] = U1;
ObrPointer[2] = U1;

for (int i = 0; i < 3;i++)
{
        cout << endl;
        ObrPointer[i];
}
system("pause");

Jak mam pres tuto metodu vypisovat? Zkousel jsem ale nejde mi to

Nahoru Odpovědět 8.1.2015 11:08
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Odpovídá na Veganekk
Lukáš Hruda (Luckin):

Opět jsi nenapsal co ti nefunguje. V jakém místě je volání nefunkční? Máš metodu Vypis definovanou, pokud ano, kde je její kód?

 
Nahoru Odpovědět 8.1.2015 13:16
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.