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

kako da iz main() pristupim privatnom atributu klase?

[es] :: C/C++ programiranje :: kako da iz main() pristupim privatnom atributu klase?

[ Pregleda: 2165 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

alxx88

Član broj: 134276
Poruke: 9
*.adsl-1.sezampro.yu.



Profil

icon kako da iz main() pristupim privatnom atributu klase?09.01.2008. u 16:04 - pre 166 meseci
//neka klasa:

class vektor
{
private:
char niz[];
public:
void fja();
};

main()
{
vektor v;
for(inti=0; i<4; i++)
cin>>v.niz;
}


I nece da pristupi privatnim clanovima klase (valjda nista ne menja sto mi je klasa templejtska).
A ne znam kako to da ispravim, al da ga ne stavljam u public...pa ako neko od dobrih ljudi ima ideju, javite sto pre, sutra imam ispit!

PLEASE!!!!
 
Odgovor na temu

atko79
Sarajevo

Član broj: 34935
Poruke: 70
*.hermes.si.



Profil

icon Re: kako da iz main() pristupim privatnom atributu klase?09.01.2008. u 16:21 - pre 166 meseci
Napisi javnu funkciju clanicu te klase koja prima za parametar ono sto zelis i vrsi setovanje varijable koju zelis.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12793



+4732 Profil

icon Re: kako da iz main() pristupim privatnom atributu klase?09.01.2008. u 16:26 - pre 166 meseci
Sta mislis zasto se zove private :)
Napravi metode void setNiz(char niz[]) i char[] getNiz().

PS. nisam bas C++ovac, mozda kod prve treba char[] niz :)
 
Odgovor na temu

Black3maj
Beograd

Član broj: 113924
Poruke: 59
*.adsl.beotel.net.



Profil

icon Re: kako da iz main() pristupim privatnom atributu klase?09.01.2008. u 18:21 - pre 166 meseci
Privatnom delu klase moguce je pristupiti samo iz unutrasnjosti klase ako zelis da upises neki element mozes da napravis
f-ju koja ce da dobije kao argument niz npr.

Code:

void dodaj(const char *I)
{
       strcpy(niz,I);
}

pre ovoga si samo ucitao string ili da napravis (prijateljsku,obicno se tako pise) metodu sa preklopljenim operatorom za upis >>


Code:

friend istream& operator>> (istream& u,vektor& v)
{
                 //sad ovde mozes da pristupis privatnim delovima npr v.niz
}
 
Odgovor na temu

virtualVoid

Član broj: 161084
Poruke: 698



+28 Profil

icon Re: kako da iz main() pristupim privatnom atributu klase?09.01.2008. u 21:27 - pre 166 meseci
Iskreno, nije mi jasno kako si dosao do klasa, a da nisi naucio osnovna pravila o privatnim, javnim i protected clanovima...

Ovako ti stvari stoje. Da bi radio sa privatnim clanovima, imas 2 nacina:
1. preko konstruktora
2. preko getter i setter funkcija

1. Preko konstruktora se obicno vrsi samo inicijalizacija na neku defaultnu vrijednost i to se dogadja prilikom kreiranja objekta. U suptornom bi ti objekt imao neinicijalizirane clanove.

2. getter i setter funkcije se koriste da bi preko objekta te klase mogao pristupiti javnim clanovima, odnosno mijenjati defaultnu vrijednost. svaka getter metoda ima sljedecu sintaksu
Code:
TipPrivClana getImeMetode()const{
return privatniClan;
}

Kao sto vidis ime je dobila prema ovom clanu get (koji se i kod nas moze prevesti kao uzmi, dobavi i sl.). Sljedeca je setter funkcija sa sintaksom
Code:
void setImeMetode(TipPrivatnogaClana nekoIme){
privatniClan=nekoIme //za brojcane vrijednosti
}

za nizove karaktera (staticke) prvo moras pobrisati defaultnu vrijednost pa tek onda iskopirati novu
Code:
void setImeMetode(char[] nekoIme){
delete [] privatniNizKaraktera;
strncpy(privatniClan,nekoIme,velicinaNiza);
}

a za pristup nizu karaktera preko pointera
Code:
void setImeMetode(char* nekoIme){
delete [] pointerPrivatniClan;
pointerPrivatniClan=new char[strlen(nekoIme)+1];//+1 ide da bi mogao koristiti strcpy
strcpy(privatniClan,nekoIme);
}


Sada iz main() ides
Code:
Klasa objekt;
cout << objekt.getMetoda() << endl;

ili

objekt.setMetoda(nekiParametar);

...
 
Odgovor na temu

Buffy
Stanko Culaja
Sipovo, BiH

Član broj: 45310
Poruke: 312
*.ns.ac.yu.



Profil

icon Re: kako da iz main() pristupim privatnom atributu klase?15.01.2008. u 18:06 - pre 166 meseci
ja mislim da ovako moze, mada nisam odavno kucao c++:
Code:

//nije testirano
class klasa{
   private:
   //.....
   friend main;
};


e sad nisam siguran da li se stavlja operator pristupa funkciji () ili samo adresa funkcije, jer nemam kompajlera pri ruci.
Pozdrav.
 
Odgovor na temu

[es] :: C/C++ programiranje :: kako da iz main() pristupim privatnom atributu klase?

[ Pregleda: 2165 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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