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

Klase - pitanja?

[es] :: C/C++ programiranje :: C/C++ za početnike :: Klase - pitanja?

[ Pregleda: 2821 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SuperC

Član broj: 120719
Poruke: 124
*.9.14.vie.surfer.at.



Profil

icon Klase - pitanja?14.12.2006. u 16:44 - pre 211 meseci
u zadatku (sa testa) stoji:

Code:
#include <iostream>
using namespace std;
class A {
public:
A () {cout << "noch";}
A (int x);
A (double y);
};
A::A (int i) { cout  << i;}
A::A (double y) {
cout << y;}

int main () {
A a, b (200);
A c (5.12);
return 0;
}


Eh, sada jasno je meni da nakon deklarariranja i zatvaranja (ovdje int x ne igra neku ulogu koliko vidim), da se ide na main () dio, odakle se poziva prvo gornji A koji nema nista te se kao prvi dio rjesenja izbacuje noch, a sta poziva b(200)? Mozda A (double y)? jer onda ce biti da sje drugi dio rjesenja 200, ako je tako, ostaje A c(5.12) sta s njim?

Ako moze konkretno pojasnjenje, na ovom primjeru. Hvala

--
19: 23h Update: shvatih kako funkcionise

[Ovu poruku je menjao SuperC dana 14.12.2006. u 19:33 GMT+1]
 
Odgovor na temu

SuperC

Član broj: 120719
Poruke: 124
*.9.14.vie.surfer.at.



Profil

icon Re: Klase - pitanja?14.12.2006. u 19:47 - pre 211 meseci
novo pitanje:

ako imam

Code:
class Zug {
int waggons, zugnr;
public:
Zug (int nr, int wag=5) {
zugnr = nr;
waggons=wag;
}
int vergleich (Zug g) {
if (waggons>=g.waggons) {
return zugnr;
}
return g.zugnr;
}
};
int main () {
Zug e(10), z(20,10);
int i = e.vergleich (z);
cout << "Zug" << i
<< ist laenger!";
}


--------------------------------
dakle ovdje imam da je prvi dio rjesenja Zug a posljednji je ist laenger, zatim se trazi vrijednost od i (koja daje rjesenje izmedju), koja je integer tipa, no sta dalje (opet treba mi pojasnjenje, ne prijedlozi tipa provuci kroz kompajler i vidi u knjigama)?
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Klase - pitanja?14.12.2006. u 20:48 - pre 211 meseci
Koliko god se trudio ne mogu da skontam šta si ti hteo da pitaš. Ajde pitaj nepto konkretnije i jasnije.

Inače, Zug e(10) verovatno neće raditi jer nema konstruktor koji prima samo jedan integer.
 
Odgovor na temu

SuperC

Član broj: 120719
Poruke: 124
*.9.14.vie.surfer.at.



Profil

icon Re: Klase - pitanja?14.12.2006. u 21:05 - pre 211 meseci
dakle, kao i prvo pitanje, koje sam u medjuvremenu shvatio sam, tako i drugo je pitanje sa testa, sto znaci ne kompajliraj nego samo prodji kroz program i reci mi sta si dobio, ja imam rjesenje ali me zanima kako se doslo do istoga. nadam se da razumijes?


znaci ako je int i = e. vergleich (z) sta onda?
 
Odgovor na temu

SuPeR_MaSteR
Marko Stamenković

Član broj: 88590
Poruke: 115
*.inffo.net.



Profil

icon Re: Klase - pitanja?15.12.2006. u 00:56 - pre 211 meseci
Citat:
del-boy:
..
Inače, Zug e(10) verovatno neće raditi jer nema konstruktor koji prima samo jedan integer.


Hoce raditi, konstruktor prima 2 argumenta s' tim sto je drugom zadata vrednost 5 u slucaju da nije naveden u listi argumenata.

Code:

int vergleich (Zug g) {
if (waggons>=g.waggons) {
return zugnr;
}
return g.zugnr;
}


Poredi se unutrasnja promenljiva clanica sa promenljivom clanicom objekta g tipa/klase Zug. U slucaju logicke istine (tj. da je leva strana veca ili jednaka desnoj), funkciji se vraca vrednost unutrasnje promenljive zugnr, odnosno vrednost promenljive zugnr ali clanice objekta g.

U konkretnom primeru sto si naveo:
Code:

Zug e(10), z(20,10);

Kreiraju se 2 objekta klase Zug (e,z) sa sledecim vrednostima varijabli:
e.zugnr = 10, e.waggons = 5; i
z.zugnr = 20, z.waggons = 10;

Code:

int i = e. vergleich (z) 

Poziva se funkcija clanica klase e i kao argument prosledjuje joj se objekat klase Zug, zatim se porede e.waggons i g.waggons (kopija), i vraca se vrednost g.zugnr (to jest kopija vrednosti z.zugnr) -> ta vrednost se dodeljuje promenljivoj i.
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: Klase - pitanja?15.12.2006. u 01:55 - pre 211 meseci
Citat:

Hoce raditi, konstruktor prima 2 argumenta s' tim sto je drugom zadata vrednost 5 u slucaju da nije naveden u listi argumenata.


Moja greška, nisam video da postoji podrazumevana vrednost.
 
Odgovor na temu

SuperC

Član broj: 120719
Poruke: 124
*.9.14.vie.surfer.at.



Profil

icon Re: Klase - pitanja?15.12.2006. u 06:54 - pre 211 meseci
Ok, razumijem, znaci u ovom slucaju ce rjesenje biti 20 za varijablu, dok ce u slicnom primjeru:

Code:
class Zug {
int waggons, zugnr;
public:
Zug (int nr, int wag=5) {
zugnr = nr;
waggons=wag;
}
int vergleich (Zug g) {
if (waggons>=g.waggons) {
return zugnr;
}
return g.zugnr;
}
};
int main () {
Zug e(5, 12), z(7);
int i = e.vergleich (z);
cout << "Zug" << i
<< ist laenger!";
}


vrijednost 5 biti dodijeljena z pa ce se porediti 5, 12 sa 7, 5 i posto je wagon 12 veci od wagona 5 vratiti ce se vrijednost od zug od e sto je vrijednost 5 te je to i promjenjiva i ?
 
Odgovor na temu

SuPeR_MaSteR
Marko Stamenković

Član broj: 88590
Poruke: 115
*.inffo.net.



Profil

icon Re: Klase - pitanja?15.12.2006. u 10:57 - pre 211 meseci
yea, bas tako.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Klase - pitanja?

[ Pregleda: 2821 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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