Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
c++ ako pracovat s triedami

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 03.11.2008 10:50

ahoj,
akurat to preberame v skole a nie je mi jasne toto:
mame vytvorit subor nieco.h, nieco.cc, niecomain.cc kde:
nieco.h ma byt klasicky header file a ma obsahovat definicie tried
nieco.cc ma obsahovat implementaciu tried
niecomain.cc hlavny program
a teraz nechapem preco to je v c++ tak ze v hlavickovom by mali byt triedy a iba kratke metody a v nieco.cc by mali byt ostatne (dlhsie) metody k danym triedam. (teda takto nas to ucia). Preco to nemoze byt tak ako v jave ze proste mam triedu na jednom mieste a vsetko co k nej patri tak je v nej? Rad by som pocul nejake vysvetlenie preco sa to ma takto robit lebo sa mi to zda uplne nezmyselne a neprehladne.

A este jedna vec, ak mate nejaky kvalitny zdroj kde sa da ucit c++ a je tam vela prikladov tak sem s nim, lebo zatial co som nasiel bola bieda, stale sa pokusam najst nejaky vzorovy priklad kde bude viac tried s dedenim a s pouzitim konstruktorov ale akosi nikde nic, vsade iba jednoduche kusky kodu... :(

edit: este sa opytam k tej prvej casti, ze aka je vlastne konvencia, co vsetko v ramci triedy sa ma pisat do headeru a co sa ma implementovat mimo? napriklad gettery a settery tam mozu byt? alebo lepsie je do headeru napisat iba nazov triedy a prototypy (neviem ci sa to tak vola) metod a vsetky implementacie uviest az v dalsom subore? Pripadne aka je vhodna dlzka metody aby sa pisala inline?

edit2: prave som nasiel celkom dobry priklad kde je to robene tak ze ani jedna metoda v triede nie je definovana inline - je to tak lepsie ako keby tam boli nejake inline metody?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.07
Prihlásený: 06.05.13
Príspevky: 421
Témy: 4
Príspevok NapísalOffline : 03.11.2008 18:21

ak mas taketo daco:

tr1.h
tr1.cpp
tr2.h
tr2.cpp

a ak v triede tr2 pouzivas nieco z triedy tr1, tak das:
#include tr1.h ... a prida Ti to LEN tych par riadkov (deklaracii) z headru, nemusia sa pridavat aj cele implementacie;

no a ak zmenis nieco v tr1.cpp, tak prekladac bude prekladat len tr1.cpp;
ak by cela implementacia tried bola v headri, tak by sa prekladal aj tr2.cpp;

mimochodom, je to len o akomsi "poriadku" v zdrojovych kodoch; Ak by si velmi chcel, tak mozes dat vsetko (*.h aj *.cpp) do jedneho suboru, ale prekladac Ti bude vzdy, pri akejkolvek zmene prekladat vstko;

PS: ak sa dostanes ku C#, tak tam je uz cela trieda (defklaracie aj definicie) pre danu triedu v jednom subore;

Podstata je v tom, aby si pisal taky kod, ze sa v nom vyznas aspon Ty, ak uz nie niekto iny;


Offline

Užívateľ
Užívateľ
c++ ako pracovat s triedami

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6
Príspevok NapísalOffline : 03.11.2008 20:02

akoze moze to byt kludne aj secko v jednom subore ked uz nato prijde....
pozri builder.cz







_________________
getch();?{readkey;?} na konci? !A naco! Riesenie je (Alt+F5)
99% pochopí a shaggy je druhá kategória
Offline

Užívateľ
Užívateľ
c++ ako pracovat s triedami

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok Napísal autor témyOffline : 03.11.2008 20:13

nj dik, tak uz viem teda ze ten sposob co teraz od nas vyzaduju v skole ze to je iba jedna z konvencii a nie je nutne to vzdy dodrzat

ked uz som to tu zalozil tak este dam jednu otazku prakticku:
mam abstraktnu triedu A a jej potomkov B a C. B a C sa v niecom lisia ale su navzajom porovnatelne takze som spravil funkciu pre sort(...) ktora ich porovnava:
bool fca(A a1, A a2) {...}
problem je ze mi pise chybu ze A je abstraktna - nedaju sa vytvorit instancie a1 a a2 - to je logicke, ale neviem ako to spravit, v jave si pamatam ze sa to nejako pekne dalo. Da sa to aj v C++ alebo budem musiet to porovnavanie nejako inak spravit?
EDIT2: ok tak stacilo napisat:
bool fca(const A *a1, const A *a2) {}
na toto si budem dlho zvykat na tie *, &, -> ... :)

EDIT1: dalsia otazka: ako sa stane trieda v cpp abstraktna? staci ked ma aspon jednu virtualnu metodu? moze byt trieda abstraktna aj ked nema ani jednu virtualnu metodu?


Odpovedať na tému [ Príspevkov: 4 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Ako pracovat s joomla

v Redakčné systémy

6

1859

22.09.2011 16:07

Bajzik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pamäte:Budu pracovať ako chcem?

v Pamäte

2

509

31.10.2008 17:49

mimkork Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako pracovať s AV VCS Diamond

v Audio programy

1

846

30.04.2008 20:16

Chooosen Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako pracovat v Jave s GUI oknami?

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Assembler, C, C++, Pascal, Java

35

1712

08.06.2015 20:05

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. JAVA - Vyriešenie problému s triedami

v Assembler, C, C++, Pascal, Java

1

360

09.05.2016 13:03

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zišiel by sa návod - ako pracovať s SQL

v Databázy

1

2609

04.07.2006 11:31

wlacho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako bude pracovat dual channel v zapojeni 4x 256mb 533mhz

v Pamäte

6

863

06.02.2007 22:17

chester55555 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako nastavit grafikuv AMD catalyst c.c.

v ATI/AMD grafické karty

17

1483

26.12.2013 11:38

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C - Ako prekompilovať .c súbor do .exe?

v Assembler, C, C++, Pascal, Java

7

555

02.11.2012 18:47

MasterMatoSK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako zformátovať C:

v Operačné systémy Microsoft

2

335

24.11.2009 15:51

El_locco Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako začať s c++

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Assembler, C, C++, Pascal, Java

37

1012

16.10.2013 13:00

Caliente Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C++...ako zistiť OS ?...

v Assembler, C, C++, Pascal, Java

3

744

20.03.2009 20:43

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako ďalej? C++, Pascal..

v Assembler, C, C++, Pascal, Java

12

585

29.01.2015 18:53

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C# ako zmenit BalloonTipIcon ?

v Technológia .NET

0

999

03.09.2010 19:12

skorec1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako na vstupy v C++

v Assembler, C, C++, Pascal, Java

2

879

05.10.2007 16:42

programator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako vypnut kontrolu disku C

v Operačné systémy Microsoft

2

509

28.02.2010 12:24

Pistuk_14 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra