Poslao: 19 Sep 2014 13:26
|
offline
- crusher

- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
Napisano: 19 Sep 2014 13:23
Jer mi ovo bas i nije jasno. Da prvo deklarisem te metode u klasi pa ih posle definisem van klase i napisem kod kakav bih napisao i kao da pravim funkciju u C-u. Ja bih hteo da ta metoda trazi od korisnika da unese sta se trazi pa da smesti u pokazivace u klasi. A onda druga metoda da ispise iz pokazivaca ono sto je korisnik uneo. Na primer, prva metoda trazi da unese ime i prezime, korisnik unese neko ime i prezime i onda druga metoda da to ispise. I onda posle mi nekako nije logicno kako da tu funkciju pozovem u glavnoj funkciji kao objekat.metoda();
Da li to moze nekako da se tako uradi, ili moram da predjem onaj deo sa statickim clanovima klase da bih to mogao da uradim? Na to sam mislio.
Dopuna: 19 Sep 2014 13:26
Sad sam procitao onaj tvoj odgovor, ali mi nije jasno kad pozivam funkciju. Zasta ce meni taj objekat kojim pozivam da sluzi. To mi nije jasno. Ako bi mogao da mi to malo pojasnis kako da uradim?
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 19 Sep 2014 13:34
|
offline
- vasa.93

- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14825
- Gde živiš: Niš
|
Uh bre, teraš me da uključujem komp.
Ajde javljam se za par minuta sa primerom.
|
|
|
|
Poslao: 19 Sep 2014 13:49
|
offline
- crusher

- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
haha, ajde. Ako imas nekih obaveza samo mi reci kako bih to mogao da napravim, ako ne mogao bih jedan primer da padne.
|
|
|
|
Poslao: 19 Sep 2014 14:12
|
offline
- vasa.93

- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14825
- Gde živiš: Niš
|
- #include <string.h>
- #include <iostream>
- using namespace std;
-
- class Stadion
- {
- private:
- //ovo su privatni ATRIBUTI (dakle, NISU pokazivaci u opstem slucaju)
- int duzina;
- int sirina;
- char ime[40];
- //privatnim atributima se moze pristupati samo pomocu funkcija clanica
- //i pomocu prijateljskih funkcija (to je dalja prica za sada)
-
- public:
- Stadion(); //podrazumevani konstruktor
- ~Stadion(); //destruktor
-
- void postaviDuzinu(); //prvi pristup, f-ja bez argumenta
- void postaviDuzinu(int); //drugi pristup, duzina se prenosi kao argument f-je
- int vratiDuzinu(); //funkcija koja vraca duzinu
-
- void postaviSirinu(); //prvi pristup, f-ja bez argumenta
- void postaviSirinu(int); //drugi pristup, sirina se prenosi kao argument f-je
- int vratiSirinu(); //funkcija koja vraca sirinu
-
- void postaviIme(); //prvi pristup, f-ja bez argumenta
- void postaviIme(char*); //drugi pristup, ime se prenosi kao argument f-je
- char* vratiIme(); //funkcija koja vraca ime
- };
-
- Stadion::Stadion()
- {
- cout << "Stadion je izgradjen!" << endl;
- }
-
- Stadion::~Stadion()
- {
- cout << "Stadion je srusen!" << endl;
- }
-
- void Stadion::postaviDuzinu()
- {
- int duz;
- cout << "Unesite duzinu stadiona: ";
- cin >> duz;
- if (duz > 0)
- duzina = duz;
- else
- cout << "Uneli ste neispravnu duzinu." << endl;
- }
-
- void Stadion::postaviDuzinu(int duz)
- {
- if (duz > 0)
- duzina = duz;
- else
- cout << "Uneli ste neispravnu duzinu." << endl;
- }
-
- int Stadion::vratiDuzinu()
- {
- return duzina;
- }
-
- //Za sirinu odradi sam, isto je potpuno
-
- void Stadion::postaviIme()
- {
- cout << "Unesite ime stadiona: ";
- cin >> ime;
- }
-
- void Stadion::postaviIme(char* im)
- {
- strcpy(ime, im);
- }
-
- char* Stadion::vratiIme()
- {
- return ime;
- }
- void main()
- {
- Stadion Marakana; //kreira se objekat tipa Stadiona sa identifikatorom Marakana
- //tom prilikom se poziva podrazumevani konstruktor obzirom da nema argumenata
-
- Marakana.postaviDuzinu(100); //postavlja se vrednost privatnog atributa duzina na 100
- Marakana.postaviIme("Marakana"); //postavlja se vrednost privatnog atributa ime na "Marakana"
-
- cout << "Ime stadiona: " << Marakana.vratiIme() << endl; //f-ja vratiIme() vraća pokazivač na ime, i isto se štampa kao argument operatorske funkcije <<
- cout << "Duzina stadiona: " << Marakana.vratiDuzinu() << endl; //isto kao gore
- }
|
|
|
|
Poslao: 19 Sep 2014 16:08
|
offline
- morando

- Građanin
- Pridružio: 19 Maj 2011
- Poruke: 297
|
Citat:
- ...
- void main()
- ...
Vaso, nije ti ovo Java.
Svaki normalan kompajler koji prati c++ standard bi trebao da ti izbaci bar warning na ovo.
|
|
|
|
Poslao: 19 Sep 2014 16:37
|
offline
- crusher

- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
Vaso, znam ja to da uradim, nisam mislio na to. Nego vidis ovako, na primer, ovu funkciju void postaviIme(), ja zelim da tu funkciju pozovem da odradi svoj posao, tj. da radi ono sto si napisao da trazi od korisnika da unese ime pa da da stadionu ime. I ja tako isto napravim, ali posle ne znam kako da je pozovem.
Da li bi mogla da funkcija da se pozove sa Marakana.postaviIme();?
|
|
|
|
|
Poslao: 19 Sep 2014 16:57
|
offline
- crusher

- Ugledni građanin
- Pridružio: 15 Maj 2012
- Poruke: 396
|
E hvala ti. Samo sam hteo jos nesto da te pitam. Da li je bolje da koristim pokazivace umesto nizova za promenljive u klasi pa da napravim dinamicku zonu memorije ili da pravim ovako kako si ti?
|
|
|
|
Poslao: 19 Sep 2014 17:00
|
offline
- vasa.93

- Moderator foruma
- Pridružio: 17 Dec 2007
- Poruke: 14825
- Gde živiš: Niš
|
Sve zavisi od programa do programa, od obima podataka koje program obrađuje itd. Svakako, ako radiš sa dinamičkom alokacijom obrati pažnju na to da moraš da implementiraš i destruktor koji će da oslobađa prostor prilikom uništenja objekta.
|
|
|
|
Poslao: 19 Sep 2014 17:49
|
offline
- morando

- Građanin
- Pridružio: 19 Maj 2011
- Poruke: 297
|
vasa.93 ::No, ironično, ali kad pišem program u Javi uvek navodim glavnu funkciju sa argumentima...
Mislio sam na povratni tip, a inace argumenti su opcionalni u c++.
|
|
|
|