[ 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 | 46
NapísalOffline : 03.11.2008 10:50 | c++ ako pracovat s triedami

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 | 4
NapísalOffline : 03.11.2008 18:21 | c++ ako pracovat s triedami

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 | 6
NapísalOffline : 03.11.2008 20:02 | c++ ako pracovat s triedami

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 | 46
Napísal autor témyOffline : 03.11.2008 20:13 | c++ ako pracovat s triedami

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?


 [ Príspevkov: 4 ] 


c++ ako pracovat s triedami



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

1884

22.09.2011 16:07

Bajzik

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

Pamäte:Budu pracovať ako chcem?

v Pamäte

2

545

31.10.2008 17:49

mimkork

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

Ako pracovať s AV VCS Diamond

v Audio programy

1

868

30.04.2008 20:16

Chooosen

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

1779

08.06.2015 20:05

shiro

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

390

09.05.2016 13:03

walther

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

2637

04.07.2006 11:31

wlacho

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

890

06.02.2007 22:17

chester55555

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

1516

26.12.2013 11:38

walther

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

589

02.11.2012 18:47

MasterMatoSK

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

Ako zformátovať C:

v Operačné systémy Microsoft

2

360

24.11.2009 15:51

El_locco

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

Ako ďalej? C++, Pascal..

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

12

630

29.01.2015 18:53

walther

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

C# ako zmenit BalloonTipIcon ?

v Technológia .NET

0

1028

03.09.2010 19:12

skorec1

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

1051

16.10.2013 13:00

Caliente

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

C++...ako zistiť OS ?...

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

3

782

20.03.2009 20:43

Fico

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

C-cko ako vratit union

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

0

356

04.04.2014 14:50

mitko

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

C (FILE ako parameter funkcie)

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

1

665

29.10.2009 11:16

benji0o



© 2005 - 2024 PCforum, edited by JanoF