Zmysel deklaracie a definicie v C++ – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zmysel deklaracie a definicie v C++ – C / C++ – Fórum – Programujte.comZmysel deklaracie a definicie v C++ – C / C++ – Fórum – Programujte.com

 

global0
Newbie
24. 2. 2017   #1
-
0
-

Dobrý chcem sa spýtať aký zmysel ma deklarácia a následná definícia v C++. Ako tak som robil v Jave ale tam si nepametám aby som koli vytvoreniu triedy musel vytvarať 2 súbory všetko som dával do jedného teraz máme cviká na programku a nechápem tomu berieme C++. Chápem, že v deklarácii triedy *.h su všetky parametre v základnom tvare napr int vek a je tam aj konštruktor a detruktor a zakladny tvar metod ale bez tela; potom v definicii *.cpp sa jej priradi hodnota mi sme to však v Jave robili napr. int vek = 2 a mal som to v jednom zdrojaku/triede aj s metodami proste mi to pride cele divne to C++.

Proste logicky mi niekto zdôvodnite prečo je lepšie písať všetko na dvakrát tomu nechápem uvedeiem príklad:

V deklarácii´triedy je:  

void setZviera(int vek, int hmotnost);

Potom v  definícii:

 void Farma::setZviera(int vek, int hmotnost) {
    m_iVek = vek;
    m_iHmotnost = hmotnost;
}

Som snáď jediný komu to príde divné navyše ak uvážim, že keď do zdrojáku dam len tu metodu s definicie bude normalne fungovať aspon by malo minule som robil niečo podobne a šlo mi to.

Tu je celý príklad: 

Připojen obrázek.

Nahlásit jako SPAM
IP: 213.81.199.–
gna
~ Anonymní uživatel
1891 příspěvků
24. 2. 2017   #2
-
0
-

V céčku se soubory kompilují samostatně a až nakonec se slinkují dohromady. Když chceš něco použít, tak překladač potřebuje vědět, jak to vypadá.

Když je definice v jiném souboru, tak v místě použití je potřeba znát aspoň deklaraci. Takže se deklarace funkcí apod., které se používají i z jiných souborů dají do samostatného hlavičkového souboru, který pak v dalších souborech includneš, abys nemusel všude ty deklarace dopisovat a udržovat.

Nahlásit jako SPAM
IP: 213.211.51.–
Kit+15
Guru
24. 2. 2017   #3
-
-1
-
Mimo téma

#1 global
Je to postup, který s sebou C/C++ vláčí od dob svého vzniku a který zachovává z důvodů zpětné kompatibility. Java, stejně jako mnoho dalších jazyků, to sice má vyřešeno mnohem lépe, ale programátory v C/C++ už nikdo nepředělá.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:49db:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
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, 120 hostů

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ý