IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Veganekk
Člen
Avatar
Veganekk:7.1.2015 17:50

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
alfonz
Člen
Avatar
Odpovídá na Veganekk
alfonz:7.1.2015 17:53

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
lmao
Avatar
Veganekk
Člen
Avatar
Veganekk:7.1.2015 17:53

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:7.1.2015 18:17

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
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na Veganekk
Lukáš Hruda:7.1.2015 18:54

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:7.1.2015 19:02

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
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na Veganekk
Lukáš Hruda:7.1.2015 19:11

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
7.1.2015 19:11
Avatar
Veganekk
Člen
Avatar
Veganekk:8.1.2015 11:08

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
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na Veganekk
Lukáš Hruda:8.1.2015 13:16

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.