Vytvorenie predka s hodnotou potomka – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vytvorenie predka s hodnotou potomka – C / C++ – Fórum – Programujte.comVytvorenie predka s hodnotou potomka – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
tass0
~ Anonymní uživatel
10 příspěvků
6. 12. 2010   #1
-
0
-

Zdravim, mam 2 triedy Predmet a Terc. Terc je potomok Predmetu.Zjednodusene zapisane takto:

class Predmet

{
private
int aPosX;
SDL_Surface *aPovrch;
public
Predmet(int x); { aPosX = x; }
~Predmet(void);
}


class Terc : public Predmet

{
private
int aPosX;
SDL_Surface *aPovrch;
public
Predmet(int x); { aPosX = x; aPovrch = SDL_LoadBMP("..\\terc.bmp");}
~Predmet(void);
}


Ako sa da vytvorit objekt typu Predmet, ktory bude mat v atribute aPovrch hodnotu, ktora sa nastavi pri vytvoreni objektu z triedy Terc? Potrebujem asi nieco take ako hlbkovu kopiu objektu Terc. Vopred dakujem.

Nahlásit jako SPAM
IP: 158.193.98.–
Reklama
Reklama
assdfgftuhjhgj
~ Anonymní uživatel
1 příspěvek
6. 12. 2010   #2
-
0
-

asdatrzdhdf

Nahlásit jako SPAM
IP: 89.103.209.–
m->29+6
Super člen
6. 12. 2010   #3
-
0
-

Nechceš to vysvetliť presnejšie? Moc tomu nerozumiem :/

Nahlásit jako SPAM
IP: 83.208.112.–
tass0
~ Anonymní uživatel
10 příspěvků
7. 12. 2010   #4
-
0
-

Takze ide o to, ze mam zasobnik do ktoreho pridavam roznych potomkov triedy Predmet(napriklad Terc) pomocou metody:
void Push(Predmet *pPredmet);
Vytvorim si teda objekt z triedy Terc:
terc = new Terc(x); // konstruktor nastavi atribut aPosX na hodnotu x, a do atributu aPovrch sa nacita obrazok podla zadanej cesty
Teraz chcem pridat tento vytvoreny terc do zasobnika:
Push(terc);
A tu nastene problem, ze do metody push sa mi prenesie cez parameter iba hodnota atributu aPosX a atribut aPovrch je NULL.
Takze ked to mam upresnit: ako mam preniest cez ten parameter vsetky informacie a objekte terc?

Nahlásit jako SPAM
IP: 158.193.98.–
liborb
~ Redaktor
+18
Guru
7. 12. 2010   #5
-
0
-

No mě na tom tvém postupu zaráží hlavně to, že v rodičovské třídě i dceřiné třídě máš stejně pojmenované atributy. Podle všeho mají být jen v třídě Predmet.

Nahlásit jako SPAM
IP: 78.80.52.–
Vit
~ Anonymní uživatel
18 příspěvků
7. 12. 2010   #6
-
0
-

Constructor a destructor v triede Terc ma tiez divne meno :)
(a kopa inych chyb...)

Nahlásit jako SPAM
IP: 95.105.128.–
tass0
~ Anonymní uživatel
10 příspěvků
7. 12. 2010   #7
-
0
-

Viem pisal som to z hlavy, su tam nejake syntakticke chyby ale o to nejde. Skor o ten princip, ako sa daju potomkovia jednej triedy pridavat do zasobnika. Ako spravne deklarovat konstruktory a hlavicky metod.

Nahlásit jako SPAM
IP: 158.193.98.–
Vit
~ Anonymní uživatel
18 příspěvků
7. 12. 2010   #8
-
0
-

Neviem ci je dobre pri dedeni rozlisovat triedy na rodica a potomka(to skor pri procesoch)...
Mozno si chcel nieco taketo:



class Predmet
{
private:
int aPosX;
SDL_Surface *aPovrch;
public:
Predmet(int x, SDL_Surface *p=NULL){ aPosX = x; aPovrch = p; }
};


class Terc : public Predmet
{
public:
Terc(int x):Predmet(x, SDL_LoadBMP("..\\terc.bmp") ){}
};

Nahlásit jako SPAM
IP: 95.105.128.–
tass0
~ Anonymní uživatel
10 příspěvků
7. 12. 2010   #9
-
0
-

Vit, presne toto som potreboval :smile1: Uz mi to ide tak, ako potrebujem. Problem bol v tych konstroktoroch. Dakujem ti velmi pekne :smile18:

Nahlásit jako SPAM
IP: 158.193.98.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 83 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý