Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

*.h i *.cpp fajlovi. mala pomoc??

[es] :: C/C++ programiranje :: *.h i *.cpp fajlovi. mala pomoc??

Strane: 1 2

[ Pregleda: 4404 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dart_vejder
crna gora

Član broj: 58049
Poruke: 17
*.crnagora.net.



Profil

icon *.h i *.cpp fajlovi. mala pomoc??16.07.2005. u 16:11 - pre 229 meseci
htio bih napraviti sljedece:

ima nekoliko f-ja, koje cesto koristim a ne postoje, cini mi se, kao gotove...
interesuje me da li trebam napraviti jedan *.h fajl, ili *.cpp fajl (ili koji??) , u kojem ce biti ispisane te f-je, i kasnije kad radim neki projekat samo upisem #include"funkcije.h" ili ako je .cpp u pitanju: #include"funkcije.cpp" (ide li poziv sa <> ili sa "" ???)
negdje sam cuo da se cak moraju kombinovati .h i .cpp???
moze li ko caskom napisati jedan od tih koji treba npr. za najosnovniju f-ju:

int saberi(int a,int b)
{
return a+b;
}

ili bar samo kretko da kaze sta, kako i gdje, pa cu ja sam sve provaliti, samo da me uputite...

e, da...i hoce li kasnije program napisan takvim f-jama raditi i kod drugih bez problema.... (vjerovatno glupo pitanje, ali se po prvi put susrecem sa pisanjem vlastitih heder fajlova...)
kod žorža ti je ka' u banku!!
oko? sto ce ti oko??
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
*.smin.sezampro.yu.

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??16.07.2005. u 16:46 - pre 229 meseci
U header fajl (saberi.h) moras napisati deklaraciju te funkcije

Code:
int saberi(int a,int b);


u source fajl (saberi.cpp) napises impementaciju funkcije

Code:

#include "saberi.h"

int saberi(int a,int b)
{
return a+b;
}


I koristis je na sledeci nacin:

Code:
#include <cstdio>
#include <iostream>
#include "saberi.h" //Navodnici idu ako se fajl nalazi u direktorijumu gde i ovaj fajl


int main()
{
    
    int sabirak = 0;
    
    sabirak = saberi(1,5);
    
 ::printf("%d\n", sabirak);
 
 system("PAUSE");
 return 0;   
}



[Ovu poruku je menjao Burgos dana 16.07.2005. u 17:47 GMT+1]

[Ovu poruku je menjao Burgos dana 16.07.2005. u 17:47 GMT+1]
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
*.smin.sezampro.yu.

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??16.07.2005. u 17:14 - pre 229 meseci
I, da radice bez problema kod drugih - linker ce da sve to poveze u jedan exe fajl.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??16.07.2005. u 17:26 - pre 229 meseci
Citat:

#include "saberi.h" //Navodnici idu ako se fajl nalazi u direktorijumu gde i ovaj fajl


Zapravo, navodnici treba da idu ako se radi o tvom zaglavlju, a ne o nekom
sistemskom. Kada su u pitanju '<>' radi se o sistemskim zaglavljima, npr:
Code:

#include <iostream>


Kada se 'header' datoteka nalazi u istom folderu gde i datoteka koja ga poziva
(cpp), onda je dovoljno reći, kao u gornjem primeru:
Code:

#include "saberi.h"


Ponekad postoji potreba da se pristupi zaglavlju koje nije u istom folderu kao
i datoteka iz koje se 'poziva'. Tada, vraćanje u prvi prethodni folder možete
postići sa:
Code:

#include "..\\saberi.h"

ili još jedan stepen niže:
Code:

#include "..\\..\\saberi.h"

ili ako treba pristupiti nekom poddirektorijumu:
Code:

#include "poddir\\saberi.h"

... mada moderni IDE-i čitaju *samo* naziv header datoteke, a putanju čitaju iz
projektnog fajla, tj. putanju koju ste odredili datoteci kada ste je dodali u projekat
(Add to Project...)

U praksi, kod većih projekata, koristi se mešavina, relativnog i lokalnog načina
'prozivanja' header datoteka - a strategiju treba odrediti svako za sebe, a sve je
stvar lakšeg održavanja...
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
*.smin.sezampro.yu.

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??16.07.2005. u 17:35 - pre 229 meseci
Citat:
Zapravo, navodnici treba da idu ako se radi o tvom zaglavlju, a ne o nekom
sistemskom. Kada su u pitanju '<>' radi se o sistemskim zaglavljima


Zar se < > ne upotrebljavaju kada se header nalazi u include direktorijuma kompajlera, a " " prvo pretrazuju ./ direktorijum, a onda include direktorijum kompajlera?

Ispravi me ako gresim :)
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??16.07.2005. u 18:08 - pre 229 meseci
Citat:

Zar se < > ne upotrebljavaju kada se header nalazi u include
direktorijuma kompajlera, [...]


Pa da... To su sistemski folderi za koje je IDE unapred 'obavešten' i to često nije
samo jedan nego više foldera, ali se uvek radi o datotekama koje su stigle zajedno
sa okruženjem... Ponekad je kroz Project/Options moguće to promeniti i čak dodati
nove 'sistemske putanje', što ima smisla kao nekakav repozitorijum u timskom
radu...

Mislim da kod BCB postoji "Directories-Conditionals" kartica gde je definisan taj
sistemski deo "include" direktiva...

Citat:

a " " prvo pretrazuju ./ direktorijum, a onda include direktorijum kompajlera?

Verovatno da hoće... mada mislim da je pravilo jasno:
standardne header datoteke <>,
projektne header datoteke "",
...čime se jasno vidi i nazačava šta je čije.

Znam da je kod nekih command-line kompajliranja bilo izuzetno važno pratiti tačne
putanje, dok danas IDE radi sve za nas.

Trebalo bi pogledati neki on-line tutorijal...
 
Odgovor na temu

dart_vejder
crna gora

Član broj: 58049
Poruke: 17
*.crnagora.net.



Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??16.07.2005. u 21:36 - pre 229 meseci
momci, prva ste liga!!
stvarno!!!

hvala vam puno...
kod žorža ti je ka' u banku!!
oko? sto ce ti oko??
 
Odgovor na temu

3MAJ86
Marko Radić
Business Development Manager, Beauty
Industry
München

Član broj: 46087
Poruke: 253
*.ppp-bg.sezampro.yu.

Sajt: marko-radic.blogspot.com


+137 Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??17.07.2005. u 08:02 - pre 229 meseci
recimo prvi put kada sam pravio svoje header datoteke, smeshtao sam i deklaraciju i definiciju funkcije u "*.h"

ali to ne bih savetovao...
bolje je jednostavno da uvek znash "gde shta ide", videtjesh kasnije u radu da kada budesh imao vetje projekte i veliki broj takvih funkcija, ako sve budu bile na istom mestu bitje nezgodno kopati za istima...
when there is a why there is no how
 
Odgovor na temu

dart_vejder
crna gora

Član broj: 58049
Poruke: 17
*.crnagora.net.



Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??17.07.2005. u 22:10 - pre 229 meseci
hmmm... ako je to sve tako , zasto mi to onda ne radi???
evo, upravo sam probao...
otvorio sam NEW-header file, tu sam stavio:
//////////
int saberi(int a,int b);
//////////

kompajler ga je sam nazvao Unit1.h, ja sam ga kasnije preimenovao u >>moje.h<<

zatim sam otvorio ponovo (koristio sam borland c++) borland, New-C++ file, i tu upisao
///////
#include "moje.h"
int saberi(int a,int b)
{
return a+b;
}
///////
i njega sam iz Unit1.cpp preimenovao u >>moje.cpp<< (prethodno sam iz onog projekta prebacio u folder cpp projekta heder fajl "moje.h"), pritisnuo sam "compile" (mada ne znam ni treba li) i sve je bilo ok...

onda sam i jedno i drugo prebacio u program files\borland\include
i u folder gdje cu praviti novi projekat koji ce koristiti vec gotovu f-ju saberi(a,b) (posto nisam bas najbolje shvatio je li dovoljno ovo ubaciti u "program files\borland\include" ili svaki put u folder novog projekta???)
i stavio sam 3 edit-a i jedno dugme:
///////////////////////////////
#include"moje.h"
#include <cstdio> ///// je li ovo <cstdio> i <iostream> vezano za moj heder fajl i zbog njega mora biti tu???- samo sa da ili ne je dovoljno
#include <iostream>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a=StrToInt(Edit2->Text);
int b=StrToInt(Edit3->Text);
Edit1->Text=IntToStr(saberi(a,b));
}
/////////////////////////////
ali nece da ga kompajlira, nego mi stalno izbacuje ovo:
/////
[Linker Error] Unresolved external 'saberi(int, int)' referenced from C:\DOCUMENTS AND SETTINGS\iME_KOMPJUTERA\DESKTOP\NEW FOLDER (3)\UNIT1.OBJ
//////
gdje sam pogrijesio?? i mozete li mi reci sta da uradim da bude dovoljno ubaciti novi .h i .cpp fajl samo u
"program files\borland\include" //nadam se da nisam pogrijesio path - shvatate vec na koji zapravo mislim...
i da vise ne mislim na njih, nego ih kasnije samo pozivam....

je li to mora sa : #include "program files\borland\include\\saberi.h"- u .cpp-u - sto je glupo jer nije svakome borland instaliran na istom mjestu...ili kako??

izvinjavam se, ali sta mogu...mislio sam da vas vise necu morati gnjaviti...

ps. mogu li napisati sve ovo u MS visual c++ - koristeci usput klase koje postoje u borlandu, a ne postoje u samom visual c++-u??npr. AnsiString?? ili TRichEdit ili Tmemo...????
i uostalom, mora li se ovo pisati u nekom razvojnom okruzenju, ili je dovoljno u notepad-u npr.???

kod žorža ti je ka' u banku!!
oko? sto ce ti oko??
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??17.07.2005. u 23:03 - pre 229 meseci
Citat:
je li to mora sa : #include "program files\borland\include\\saberi.h"- u .cpp-u - sto je glupo jer nije svakome borland instaliran na istom mjestu...ili kako??

Ne odsad ces morati samo pisat #include <saberi.h>

I daj napisi neki jednostavan program kao zbroji dva broja, da testiraj jeli ti to radi a ne ovo sta sad imas.

Citat:
ps. mogu li napisati sve ovo u MS visual c++ - koristeci usput klase koje postoje u borlandu, a ne postoje u samom visual c++-u??npr. AnsiString?? ili TRichEdit ili Tmemo...????
i uostalom, mora li se ovo pisati u nekom razvojnom okruzenju, ili je dovoljno u notepad-u npr.???

Ali ti ovo nismo vec rekli na programiranje.net.

Aj mi posalji tvoj ta dva fajla pa cu to sam pogledat pa ti javit.
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
*.ppp-bg.sezampro.yu.

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??18.07.2005. u 14:13 - pre 229 meseci
Nazalost, izgleda da cu morati da dopunim moj odgovor.

Ono sa < > pali samo ako su headeru deklaracije funkcija koje se nalaze u *.lib fajlu.

Putanja do tog lib fajla se mora upisati u linker settings (ili kako vec, nemam BCB) dijalogu.
 
Odgovor na temu

dart_vejder
crna gora

Član broj: 58049
Poruke: 17
*.crnagora.net.



Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??18.07.2005. u 15:12 - pre 229 meseci
pa ovo i jeste f-ja koja sabira 2 broja...
dakle:

moje.h :

int saberi(int a,int b);



moje.cpp :

#include "moje.h"
int saberi(int a,int b)
{
return a+b;
}


i kada pisem program glavni, napravim form od 1 dugmeta, i 3 edit-a:

#include"moje.h"
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a=StrToInt(Edit2->Text);
int b=StrToInt(Edit3->Text);
Edit1->Text=IntToStr(saberi(a,b));
}

i on javlja gresku:

[Linker Error] Unresolved external 'saberi(int, int)' referenced from C:\DOCUMENTS AND SETTINGS\iME_KOMPJUTERA\DESKTOP\NEW FOLDER (3)\UNIT1.OBJ

ma sad cu probati fino sve ispocetka napisati, u notepad-u, pa cu vidjeti hoce li raditi...

jesam li najbolje shvatio: i moje.h i moje.cpp dovoljno je da stavim u "program files\borland\include" i svaki put ga samo pozivam ??

uostalom, neko od vas je dao dobar predlog, da stavim ovdje te fajlove, pa da pogledate sami...
ko zeli, neka izvoli...
stavio sam tu jedan mali .zip....


[Ovu poruku je menjao dart_vejder dana 18.07.2005. u 16:39 GMT+1]
kod žorža ti je ka' u banku!!
oko? sto ce ti oko??
Prikačeni fajlovi
 
Odgovor na temu

mulaz
Ljubljana

Član broj: 47602
Poruke: 2239
*.dsl.siol.net.

Jabber: mulaz@elitesecurity.org
Sajt: www.mulaz.org


+184 Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??18.07.2005. u 15:39 - pre 229 meseci
jedno pitanje samo...

u saberi.h je definirana funkcija
u saberi.cpp je funkcija, i pred toga include za saberi.h
u programu.cpp je na pocetku include saberi.h
e sad mena zanima kako kod kompajla kompajler zna za saberi.cpp, kad je u programu samo saberi.h i u saberi.h nigde pomenut saberi.cpp? po filenameu? to bi bila jedina logicka razlaga ali nisam siguran pa zato pitam odakle compiler zna za saberi.cpp kad nije nigde pomenut?
Bolje ispasti glup nego iz aviona
http://www.mulaz.org/
 
Odgovor na temu

dart_vejder
crna gora

Član broj: 58049
Poruke: 17
*.crnagora.net.



Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??18.07.2005. u 15:42 - pre 229 meseci
e i mene to isto brine!!!!!!!
stvarno mi nije jasno to!!!

da mi niste zaboravili nesto reci???

sad sam probao sljedece:

u moje.h sam stavio #include"moje.cpp"

a u moje.cpp nista nisam stavljao (od #include-a), i kad pokusam kompajlirati izbaci sljedecu gresku:

[C++ Error] Unit1.cpp(18): E2141 Declaration syntax error

[Ovu poruku je menjao dart_vejder dana 18.07.2005. u 16:47 GMT+1]

[Ovu poruku je menjao dart_vejder dana 18.07.2005. u 16:47 GMT+1]
kod žorža ti je ka' u banku!!
oko? sto ce ti oko??
 
Odgovor na temu

dart_vejder
crna gora

Član broj: 58049
Poruke: 17
*.crnagora.net.



Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??18.07.2005. u 17:19 - pre 229 meseci
pokusao sam i u visual c++ -u sve ovo da uradim (kako ste mi vi rekli) , ovako sam uradio glavni program:

#include<stdio.h>
#include"moje.h"
main()
{
int a,b,c;
printf("unesite broj a: ");
scanf("%d",&a);
printf("unesite broj b: ");
scanf("%d",&b);
c=saberi(a,b);
printf("zbir a i b je : %d",c);
}

ali, daje gresku:
c:\documents and settings\ime_kompjutera\desktop\zadatak\da\ad.cpp(3) : error C2143: syntax error : missing ';' before 'PCH creation point'

pa u cemu je ovdje vise stvar???

sta to svi propustamo???
kod žorža ti je ka' u banku!!
oko? sto ce ti oko??
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??18.07.2005. u 18:17 - pre 229 meseci
Citat:
mulaz: jedno pitanje samo...

u saberi.h je definirana funkcija
u saberi.cpp je funkcija, i pred toga include za saberi.h
u programu.cpp je na pocetku include saberi.h
e sad mena zanima kako kod kompajla kompajler zna za saberi.cpp, kad je u programu samo saberi.h i u saberi.h nigde pomenut saberi.cpp? po filenameu? to bi bila jedina logicka razlaga ali nisam siguran pa zato pitam odakle compiler zna za saberi.cpp kad nije nigde pomenut?

To je nelogicno, ali tako je, interesantno zar ne?!

Jesili probao je li ti to radi na nekom jednostavnom CONZOLNOM programu:

#include<stdio.h>
#include"moje.h"

int main() {
int c=saberi(3,7);
printf("%d",c);
return 0;
}
 
Odgovor na temu

dart_vejder
crna gora

Član broj: 58049
Poruke: 17
*.crnagora.net.



Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??18.07.2005. u 20:25 - pre 229 meseci
probao sam i tako nesto...
jednostavno nece...
eto, uostalom, ostavio sam .h i .cpp gore, pa ako ko hoce da proba "iz prve ruke" - neka izvoli...
ja jednostavno ne znam sta je to...???
kod žorža ti je ka' u banku!!
oko? sto ce ti oko??
 
Odgovor na temu

mulaz
Ljubljana

Član broj: 47602
Poruke: 2239
*.dsl.siol.net.

Jabber: mulaz@elitesecurity.org
Sajt: www.mulaz.org


+184 Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??19.07.2005. u 00:00 - pre 229 meseci
pa ako se u bla.h ubaci #include bla.cpp onda bi moglo

#include preprocesoru kaze da tamo gde taj #include stoji da ucita ceo file, kao da je deo program.cpp file-a. tako da kad ukuca saberi.h on ukuca samo definiciju fukncije, a ne i samu funkciju.
Bolje ispasti glup nego iz aviona
http://www.mulaz.org/
 
Odgovor na temu

ChildInTime
BiH

Član broj: 52180
Poruke: 50
*.dlp384.bih.net.ba.



Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??19.07.2005. u 00:17 - pre 229 meseci
Citat:
dart_vejder:
ali, daje gresku:
c:\documents and settings\ime_kompjutera\desktop\zadatak\da\ad.cpp(3) : error C2143: syntax error : missing ';' before 'PCH creation point'


Pa ocigledno je da ti nedostaje ';' , a to ti nedostaje u heder fajlu , jer kao sto vjerovatno znas na kraju prototipa funkcije ti mora doci ';'.Vjerovatno je to bio lapsus,nakon 24-satnog ekstremnog programiranja

Znaci islo bi (bezeze):
Code:


zbir.cpp

#include<iostream>
#include "zbir.h"

void main()
{
 std::cout<<"5 + 2 = "<<Zbir(5,2)<<endl;
 system("pause");
}

int Zbir(int a,int b) { return a+b; }

-----------

zbir.h 

int Zbir(int ,int) ;


Eto to je to...
Pozdrav.

[Ovu poruku je menjao ChildInTime dana 19.07.2005. u 01:18 GMT+1]

[Ovu poruku je menjao ChildInTime dana 19.07.2005. u 01:19 GMT+1]
Maybe one day I'll be na honest man
Up till now I'm doing the best I can...
 
Odgovor na temu

japan

Član broj: 34328
Poruke: 480
*.smin.sezampro.yu.



+13 Profil

icon Re: *.h i *.cpp fajlovi. mala pomoc??19.07.2005. u 01:02 - pre 229 meseci
nisam bas najpazljivije procitao sve, pa cu mozda ponoviti nesto sto je neko vec rekao:

- u saberi.h stavis potpis/deklaraciju f-je
- u saberi.cpp telo/definiciju f-je
- u fajl.cpp inkludujes saberi.h (#include "saberi.h")
- kompajliras (bez linkovanja) saberi.cpp i fajl.cpp
- linkujes saberi.obj i fajl.obj


 
Odgovor na temu

[es] :: C/C++ programiranje :: *.h i *.cpp fajlovi. mala pomoc??

Strane: 1 2

[ Pregleda: 4404 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.