Dědění – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Dědění – C / C++ – Fórum – Programujte.comDědění – C / C++ – Fórum – Programujte.com

 

Yety0
Stálý člen
2. 4. 2010   #1
-
0
-

Mám tento kód

class man
{
public:
int x,y;
int nx,ny;
bool live;
man();
~man();
void move(int nx, int ny);
void kill();
void posx(); // x position
void posy(); // y position
};

class BBishop1: man
{
};

Chci aby třída BBishop1(black bishop 1) dědila od man všechny funkce i vlastnosti. Když ale provedu toto

void BBishop1::move(int nx, int ny)
{
this->x=nx;
this->y=ny;
}

Tak mi to vyhodí error, že funkce move ve funkci BBishop1 není deklarována to, ale mělo obstarat dědění od man.

Kde je chyba?

Nahlásit jako SPAM
IP: 62.245.72.–
Kapitán A. J. Rimmer vesmírný dobrodruh
liborb
~ Redaktor
+18
Guru
2. 4. 2010   #2
-
0
-

Ona je samozřejmě dědí a dědí je i s implementací. A pokud ji chceš v dceřiné třídě přetížít, tak ji v ní musíš i deklarovat.
A ještě poznámka k atributům, máš je taky public ... udělej je protected.

Nahlásit jako SPAM
IP: 195.189.142.–
Yety0
Stálý člen
2. 4. 2010   #3
-
0
-

liborb napsal:
Ona je samozřejmě dědí a dědí je i s implementací. A pokud ji chceš v dceřiné třídě přetížít, tak ji v ní musíš i deklarovat.
A ještě poznámka k atributům, máš je taky public ... udělej je protected.



Proč je nezdědí včetně deklarace? Proč protected?

Jinak dík!

Nahlásit jako SPAM
IP: 62.245.72.–
Kapitán A. J. Rimmer vesmírný dobrodruh
Yety0
Stálý člen
2. 4. 2010   #4
-
0
-

Ještě jeden problém

void BBishop1::posx()
{
return this->x;
}

void BBishop1::posy()
{
return this->y;
}

potřebuji vrátit x, funkce nemá žádné vstupní proměnné.

Kde je chyba?

Nahlásit jako SPAM
IP: 62.245.72.–
Kapitán A. J. Rimmer vesmírný dobrodruh
liborb
~ Redaktor
+18
Guru
2. 4. 2010   #5
-
0
-

Zdědí vše, ale když ji chceš přetížít (implementovat v dceřiné třídě), tak ji musíš definovat stejně znovu.
Protected proto aby nebyly přímo přístupné, ale v dceřiné třídě ano.
A to poslední ... nastav návratový typ správně na int.

Nahlásit jako SPAM
IP: 195.189.142.–
Yety0
Stálý člen
2. 4. 2010   #6
-
0
-

To liborb :

Moc děkuji. To poslední jsem trochu tušil :)

Dík!

Nahlásit jako SPAM
IP: 62.245.72.–
Kapitán A. J. Rimmer vesmírný dobrodruh
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, 14 hostů

Podobná vlákna

Dědění — založil opoke

Vysvětlení dědění — založil felix

Dedeni a objekty — založil advanced

Dědění java konstruktory — založil elix

OOP - Dedeni s vice tridama — založil Ruda

Moderátoři diskuze

 

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