Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
delete Forumaš(ica)

Pridružen/a: 25. 03. 2007. (11:36:21) Postovi: (3)16
|
|
[Vrh] |
|
pecina Forumaš(ica)


Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol: 
Lokacija: Happily traveling through space since 1986!
|
Postano: 11:46 ned, 25. 3. 2007 Naslov: |
|
|
Da, u .h datoteci se nalaze prototipovi funkcija i deklaracije, a u cpp se nalazi definicija. Npr.
[code:1]// Tocka.h
struct tocka
{
float x, y;
// Deklaracija konstruktora
Tocka(float x, float y);
}[/code:1]
[code:1]// Tocka.cpp
#include "Tocka.h"
// Definicija konstruktora
Tocka::Tocka(float x, float y)
: x(x), y(y)
{}[/code:1]
Jasnije??
Da, u .h datoteci se nalaze prototipovi funkcija i deklaracije, a u cpp se nalazi definicija. Npr.
Kod: | // Tocka.h
struct tocka
{
float x, y;
// Deklaracija konstruktora
Tocka(float x, float y);
} |
Kod: | // Tocka.cpp
#include "Tocka.h"
// Definicija konstruktora
Tocka::Tocka(float x, float y)
: x(x), y(y)
{} |
Jasnije??
_________________ -- space available for rent --
|
|
[Vrh] |
|
vinko Forumaš(ica)

Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol: 
Lokacija: PMF-MO 214
|
Postano: 13:47 ned, 25. 3. 2007 Naslov: |
|
|
[quote="pecina"]Da, u .h datoteci se nalaze prototipovi funkcija i deklaracije, a u cpp se nalazi definicija. Npr.
[code:1]// Tocka.h
struct tocka
{
float x, y;
// Deklaracija konstruktora
Tocka(float x, float y);
}[/code:1]
[code:1]// Tocka.cpp
#include "Tocka.h"
// Definicija konstruktora
Tocka::Tocka(float x, float y)
: x(x), y(y)
{}[/code:1]
Jasnije??[/quote]
Upravo tako. U ovom kontekstu, kompajler tretira konstruktor kao i svaku drugu funkciju.
Možda da ne kompliciramo sa : u implementaciji (to je dakle jedan od konstruktora tipa float), mogli bi pisati:
[code:1]// Tocka.cpp
#include "Tocka.h"
// Definicija konstruktora
Tocka::Tocka(float x, float y){
Tocka::x = x; // ili this->x = x;
Tocka::y = y; // ili this->y = y;
}[/code:1]
pecina (napisa): | Da, u .h datoteci se nalaze prototipovi funkcija i deklaracije, a u cpp se nalazi definicija. Npr.
Kod: | // Tocka.h
struct tocka
{
float x, y;
// Deklaracija konstruktora
Tocka(float x, float y);
} |
Kod: | // Tocka.cpp
#include "Tocka.h"
// Definicija konstruktora
Tocka::Tocka(float x, float y)
: x(x), y(y)
{} |
Jasnije?? |
Upravo tako. U ovom kontekstu, kompajler tretira konstruktor kao i svaku drugu funkciju.
Možda da ne kompliciramo sa : u implementaciji (to je dakle jedan od konstruktora tipa float), mogli bi pisati:
Kod: | // Tocka.cpp
#include "Tocka.h"
// Definicija konstruktora
Tocka::Tocka(float x, float y){
Tocka::x = x; // ili this->x = x;
Tocka::y = y; // ili this->y = y;
} |
|
|
[Vrh] |
|
marijap Forumaš(ica)


Pridružen/a: 21. 06. 2006. (19:04:40) Postovi: (209)16
Spol: 
Lokacija: zg
|
|
[Vrh] |
|
pecina Forumaš(ica)


Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol: 
Lokacija: Happily traveling through space since 1986!
|
|
[Vrh] |
|
vinko Forumaš(ica)

Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol: 
Lokacija: PMF-MO 214
|
Postano: 14:02 ned, 25. 3. 2007 Naslov: |
|
|
[quote="marijap"]pitanje:
recimo da imam neku strukturu X i fje f,g,h.
mogu li npr. u implementaciji f-je g pozvati fju f sa X.f() negdje unutar g?
recimo da mi baš treba u g neka vrijednost vezana uz X koju izračunava upravo fja f...[/quote]
Da.
npr. ovo sasvim uredno radi:
[code:1]
// dakle imam strukturu X sa funkcijama f(), g() i h(X y)
void X::f() {
// radi nesto
}
void X::g() {
f(); // znači X::f(); ili this->f();
}
void X::h(X y) {
f(); // pozivamo funkciju na strukturu(varijablu) na kojoj trenutno radimo
y.f(); // a normalo, možemo pozivati i funkcije neke druge varijable
}
// nedgje u npr. int main() imamo
...
X a,b;
a.g() // u implementaciji će biti pozvano a.f();
b.g() // u implementaciji će biti pozvano b.f();
a.h(b) // u implementaciji će biti pozvano a.f(), pa b.f();
b.h(b) // u implementaciji će biti pozvano b.f(), pa ponovo b.f();
...
[/code:1]
marijap (napisa): | pitanje:
recimo da imam neku strukturu X i fje f,g,h.
mogu li npr. u implementaciji f-je g pozvati fju f sa X.f() negdje unutar g?
recimo da mi baš treba u g neka vrijednost vezana uz X koju izračunava upravo fja f... |
Da.
npr. ovo sasvim uredno radi:
Kod: |
// dakle imam strukturu X sa funkcijama f(), g() i h(X y)
void X::f() {
// radi nesto
}
void X::g() {
f(); // znači X::f(); ili this->f();
}
void X::h(X y) {
f(); // pozivamo funkciju na strukturu(varijablu) na kojoj trenutno radimo
y.f(); // a normalo, možemo pozivati i funkcije neke druge varijable
}
// nedgje u npr. int main() imamo
...
X a,b;
a.g() // u implementaciji će biti pozvano a.f();
b.g() // u implementaciji će biti pozvano b.f();
a.h(b) // u implementaciji će biti pozvano a.f(), pa b.f();
b.h(b) // u implementaciji će biti pozvano b.f(), pa ponovo b.f();
...
|
Zadnja promjena: vinko; 14:09 ned, 25. 3. 2007; ukupno mijenjano 1 put.
|
|
[Vrh] |
|
marijap Forumaš(ica)


Pridružen/a: 21. 06. 2006. (19:04:40) Postovi: (209)16
Spol: 
Lokacija: zg
|
|
[Vrh] |
|
vinko Forumaš(ica)

Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol: 
Lokacija: PMF-MO 214
|
|
[Vrh] |
|
marijap Forumaš(ica)


Pridružen/a: 21. 06. 2006. (19:04:40) Postovi: (209)16
Spol: 
Lokacija: zg
|
|
[Vrh] |
|
pecina Forumaš(ica)


Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol: 
Lokacija: Happily traveling through space since 1986!
|
|
[Vrh] |
|
marijap Forumaš(ica)


Pridružen/a: 21. 06. 2006. (19:04:40) Postovi: (209)16
Spol: 
Lokacija: zg
|
|
[Vrh] |
|
pecina Forumaš(ica)


Pridružen/a: 19. 01. 2005. (14:15:23) Postovi: (157)16
Spol: 
Lokacija: Happily traveling through space since 1986!
|
|
[Vrh] |
|
marijap Forumaš(ica)


Pridružen/a: 21. 06. 2006. (19:04:40) Postovi: (209)16
Spol: 
Lokacija: zg
|
Postano: 19:35 sri, 18. 4. 2007 Naslov: |
|
|
fala, karma++ 8)
ja sam čak stavila #include-ove ispred #include ".h" , ali se nisam sjetila staviti i using namespace std, a upravo radi tog mi nije prolazilo...
mogu li ja, za svaki slučaj, ubuduće sve #include ".h" stavljati tik prije int main-a ili implementacija fja?
inače, oduševljena sam kakvih sve ima gotovih fja u stl-ovima, vrlo praktično :D
fala, karma++
ja sam čak stavila #include-ove ispred #include ".h" , ali se nisam sjetila staviti i using namespace std, a upravo radi tog mi nije prolazilo...
mogu li ja, za svaki slučaj, ubuduće sve #include ".h" stavljati tik prije int main-a ili implementacija fja?
inače, oduševljena sam kakvih sve ima gotovih fja u stl-ovima, vrlo praktično
|
|
[Vrh] |
|
vinko Forumaš(ica)

Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol: 
Lokacija: PMF-MO 214
|
Postano: 19:46 sri, 18. 4. 2007 Naslov: |
|
|
[quote="marijap"]mogu li ja, za svaki slučaj, ubuduće sve #include ".h" stavljati tik prije int main-a ili implementacija fja?
inače, oduševljena sam kakvih sve ima gotovih fja u stl-ovima, vrlo praktično :D[/quote]
A možete gdje hoćete, ali bi preglednije bilo na početku.
U vezi onog prošlog posta, nekako ljepše bi bilo u .h datoteku napisati
#include <vector> i <set> (da ne morate svaki put kada includate taj .h fajl paziti u .cpp fajlu na išta), ali bez using namespace (jer mi to onda ostaje i u ostatku .cpp datoteke, što možda ne bih htio neki drugi put ako includam taj fajl - ako slučajno imam funkciju koja se jednako zove kao i ona iz std-a - npr. situacija sa swap je bila slična na vježbama).
Ja bi da pišem program .h fajl napisao:
[code:1]#include <vector>
#include <set>
std::vector<int> fja(std::set<float>);[/code:1]
marijap (napisa): | mogu li ja, za svaki slučaj, ubuduće sve #include ".h" stavljati tik prije int main-a ili implementacija fja?
inače, oduševljena sam kakvih sve ima gotovih fja u stl-ovima, vrlo praktično  |
A možete gdje hoćete, ali bi preglednije bilo na početku.
U vezi onog prošlog posta, nekako ljepše bi bilo u .h datoteku napisati
#include <vector> i <set> (da ne morate svaki put kada includate taj .h fajl paziti u .cpp fajlu na išta), ali bez using namespace (jer mi to onda ostaje i u ostatku .cpp datoteke, što možda ne bih htio neki drugi put ako includam taj fajl - ako slučajno imam funkciju koja se jednako zove kao i ona iz std-a - npr. situacija sa swap je bila slična na vježbama).
Ja bi da pišem program .h fajl napisao:
Kod: | #include <vector>
#include <set>
std::vector<int> fja(std::set<float>); |
|
|
[Vrh] |
|
marijap Forumaš(ica)


Pridružen/a: 21. 06. 2006. (19:04:40) Postovi: (209)16
Spol: 
Lokacija: zg
|
|
[Vrh] |
|
|