C++ help

Programovacie jazyky, rady, poradňa...
tino8
Novice
Novice
Príspevky: 7
Registrovaný: 18 aug 2008, 20:16
Bydlisko: Streda nad Bodrogom

C++ help

Príspevok od používateľa tino8 »

Zdravim, zacal som sa sam ucit tento programovaci jazyk, a mam niejake nejasnosti. Tak som myslel ci sa tu nenajde niekto kto vie odpovede :)

Takze, mam za sebou mensi projektik v Jave. Chcel som ho prerobit do C++ ale hned na zaciatku sa naskytol problem.
V Jave je trieda Main, a vsetky triedy z toho isteho balicka ktore su public, alebo maju public hoci ktory clen viem pouzivat... lenze v C++ mam Main.cpp... a ak chcem pouzivat triedu ktoru som nepisal do tohto suboru ale do ineho v danom projekte tak neviem ako ich mozem pouzivat

hladal som na nete, nasiel som niejake zmienky o triedach v namespace, dalej nieco ohladne hlavickovych suborov, ale ziaden normalny priklad k tomu. a v tutorialoch co mam o tom nieja ani zmienka

tak ak by ste vedeli odpovedat na toto by mi to velmi pomohlo, popripade odporucit niejaku good knizku abo tutorial
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: C++ help

Príspevok od používateľa chrono »

Pre teba bude asi najjednoduchšie použiť nejaké IDE, ktoré sa o to postará automaticky (všetky súbory pridané do projektu sa automaticky skompilujú a potom "linknú" k výslednému súboru...).
Flexor
Light Expert
Light Expert
Príspevky: 55
Registrovaný: 19 jan 2010, 20:54

Re: C++ help

Príspevok od používateľa Flexor »

Knihu o C++ skus napriklasd Mistrovství v C++. A neviem ci som pochopil tvojmu problemu ale nejde to nahodou cez obycajne #include "subor.h" ?
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Re: C++ help

Príspevok od používateľa johny3212 »

zakladne kniznice mas uz nalinkovane, ak sa jedna o neake proprietarne alebo neake dalsie OpenSource, tie si musis nalinkovat, cez IDE ktore pouzivas. Ak sa jedna o tvoje vlastne triedy v tvojom projekte, tak tie nemusis. Dalsia vec, ked chces v c++ pouzit neaku triedu napr v Main.cpp musis v kazdom *.h or *.cpp povedat, ze ju tam chces pouzit, amatersky povedane, a to jednoduchym vlozenim prikazu:

#include <iostream> //standard
#include <Main.cpp> //tu je tvoja trieda ktoru chces pouzit
ale vecsinou sa volaju iba subory s deklaraciou, teda
#include <Main.h> // a v triede Main.cpp ma svoje definicie

V jave sa toto nemusi robit :). Tam sa da vsetko automaticky pouzit, v c++ to nie je mozne, z jednoducheho dovodu, ale tym ta nejdem zatazovat. Java funguje inak skratka, to ti musi stacit :).

Mistrovství v C++ ti na zaciatok neodporucam. Na zaciatok iba potrebujes rychlokurz, aby si mohol programovat a knihu typu Mistrovství v C++, popri, ked budes mat cas, lebo to je na dlho citania :). Pozri neake online veci ..... or C++ for lady :D
tino8
Novice
Novice
Príspevky: 7
Registrovaný: 18 aug 2008, 20:16
Bydlisko: Streda nad Bodrogom

Re: C++ help

Príspevok od používateľa tino8 »

asi si ju poziciam z kniznice... a diky za odpoved, ale ak dam na zaciatok #include<xyz.cpp> pricom xyz.cpp je existujuci subor v projekte tak mi hlasi xyz.cpp no such file or directory...

no nic, mam stiahnute visual studio (08) tak skusim potom v tom... lebo doteraz som to skusal v Dev c++
Flexor napísal:Knihu o C++ skus napriklasd Mistrovství v C++. A neviem ci som pochopil tvojmu problemu ale nejde to nahodou cez obycajne #include "subor.h" ?
Tak to znamena presne to com dal ako moznosti co som nasiel... cez hlavickovy subor
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Re: C++ help

Príspevok od používateľa johny3212 »

v hlavnom subore mas xxx.cpp main() , vytvor si dva nove subory ahoj.cpp a ahoj.h. V ahoj.h budes mat deklaraciu triedy so vsetkymi metodami a v ahoj.cpp budes mat definicie, pozri si niekde presny syntax, lebo je trosku iny ako v jave a tak isto deklaracia a defincia privatnych a verejnych clenskych je odlisna od javi. V tvojom subore xxx.cpp potom volaj iba #include "ahoj.h", cppcko nemusis volat. Inak medzi javou a c++ nie je az tolko rozdielov (v podstate jazyka). Pozor na parameter "new", v c++ a v jave to nie je uplne to iste. A v 1. rade si osvoj ukazovatele :).
tino8
Novice
Novice
Príspevky: 7
Registrovaný: 18 aug 2008, 20:16
Bydlisko: Streda nad Bodrogom

Re: C++ help

Príspevok od používateľa tino8 »

aha, takze treba vytvarat hlavickove subori, a tie pointery viem z C. dikes zajtra sa hadam pohnem s mojou textovou hrou :)

//autoeditácia príspevku (25 Jan 2010, 10:45)
Mal by som dalsiu otazku :oops:

mam triedu Parser ktorej deklaracia vyzera takto :

Kód: Vybrať všetko

class Parser {
      
      list <Command> commands;
      public:
      Parser();
      Command *getCommand(string);
      friend class Command;
      };
ale pri definicii metody *getCommand(string);

my vypisuje error:

Kód: Vybrať všetko

 `commands' undeclared (first use this function) 
pricom commands je deklarovana ako globalna premenna, v konstruktore nevypisuje ziadnu chybu a aj tam je pouzita...

a hlavne comu nechapem je ze ked som mal metodu getCommand(string); ako metodu ktora vracia premennu typu Command tak jej list commands vobec nevadil, ale ked som ju zmenil aby vraca pointer na Command tak uz vypisuje error



EDIT:: Problem solved :)

problem zmyzol ked som hlavicku metody pri definicii zmenil z

Kód: Vybrať všetko

Command Parser:: *getCommand(string comm) 

na

Kód: Vybrať všetko

Command* Parser:: getCommand(string comm) 
Napísať odpoveď