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

nizovi apstraktnih klasa

[es] :: C/C++ programiranje :: nizovi apstraktnih klasa

[ Pregleda: 5216 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

marko000
marko vucinic
Beograd

Član broj: 6501
Poruke: 63
*.eunet.yu



Profil

icon nizovi apstraktnih klasa22.05.2003. u 02:04 - pre 254 meseci
imam jedno pocetnicko(poluglupo) pitanje..

ako imam apstraktnu klasu aps
i hocu da definisem u novoj klasi niz opjekata klasa izvedenih iz pas klase
zasto ne mogu da koristim aps *niz i pristupam tim clanovima preko indeksa(niz[0],niz[1] itd..) vec moram da niz definisem kao aps **niz?
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.microsoft.com



+18 Profil

icon Re: nizovi apstraktnih klasa22.05.2003. u 02:50 - pre 254 meseci
Apstraktni objekti ne mogu da se instanciraju (ne mozes da uradis aps a;), tako da ne mozes ni da napravis niz apstraktnih objekata.

Takodje ne mozes da napravis niz ne-apstraktnih objekata A i da ih onda referenciras kroz *B (gde je B izvedeno iz A), a zvuci kao da si to opisao.
 
Odgovor na temu

marko000
marko vucinic
Beograd

Član broj: 6501
Poruke: 63
*.eunet.yu



Profil

icon Re: nizovi apstraktnih klasa22.05.2003. u 12:52 - pre 254 meseci
OK,kako onda da koristim klasu koja treba da sadrzi niz odredjenih objekata razlicitog tipa,izvedenih iz apstraktne klase,konkretno ako imam predmet za police...klasa predmet je apstraktna...neka predmeti recimo budu knjige,kasete i diskovi;kako da definisem policu koja ima odredjenu nosivost i na nju mogu da stavljam i uzimam predmete razlicitog tipa?
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.microsoft.com



+18 Profil

icon Re: nizovi apstraktnih klasa22.05.2003. u 20:20 - pre 254 meseci
Pa bas onako kako si gore napisao, pomocu duplog pointera: Predmet **niz;
 
Odgovor na temu

marko000
marko vucinic
Beograd

Član broj: 6501
Poruke: 63
*.eunet.yu



Profil

icon Re: nizovi apstraktnih klasa23.05.2003. u 11:13 - pre 254 meseci
mislim da sam dosao teorijski do resenja ;)
posto se radi o apstraktnoj klasi,objekti mogu biti razlicite vrste a u niz ne moze da se pakuje vise razlicitih vrsta vec samo jedan tip podataka...kada definisem **p definisao sam niz pokazivaca te tako nema problema...u svakom slucaju hvala puno

marko
 
Odgovor na temu

marko000
marko vucinic
Beograd

Član broj: 6501
Poruke: 63
*.eunet.yu



Profil

icon Re: nizovi apstraktnih klasa23.05.2003. u 12:44 - pre 254 meseci
hmmm...jos jedna mala nejasnoca

ako imam:

Podatak **niz; //gde je podatak apstraktna klasa

zasto prostor za niz dodeljujem sa

niz=new Podatak *[..neki broj..];
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.dial.InfoSky.Net



+6 Profil

icon Re: nizovi apstraktnih klasa23.05.2003. u 13:54 - pre 254 meseci
Možda sam već dosadan, ali ti najtoplije savetujem da ne koristiš te duple zvezde, nego lepo da uzmeš

Code:

vector <Podatak*> niz;


Veruj mi, mnogo je bolje.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: nizovi apstraktnih klasa24.05.2003. u 03:38 - pre 254 meseci
Jesi, dosadan si...

Elem od programera zavisi da li će koristiti pokazivače ili neće. Da budem najiskreniji pa da javno iznesem šta mislim - svako ko kuka o pokazivačima (a na to kukaju svi ljudi koji se bave razvojem softvera u drugim jezicima) treba odmah da prestane da programira u C/C++ i da se pozabavi nekim jezikom koji nema pokazivače, niti namerava da ima... :)

A sada ja malo ja budem dosadan... - Naime, smatram lično da je UPRAVO draž (što napisa jedan mnogo pametniji čovek od mene u jednom članku negde u nekim novinama) programiranja u C/C++ BAŠ korišćenje pokazivača da bi se došlo do kompaktnijeg izvršnog koda, za koji ne treba NNNN Mb RAM-a, NNN GB tvrdog diska i NN GHz procesor(i).

No, ovo je možda za neku diskusiju tipa "programerska filosofija". :)

Ne znam... čovek mora nekada da sedne i razmisli da li želi da programira nisko, ili visoko. Ako odabere prvo - koristiće pokazivače kao bela lala, ako odabere drugo, koristiće STL.

E, sada još malo filosofije... U pitanju je kreativnost - koristiti gotove STL stvari po meni čoveku ostavljaju sve manje i manje prostora za kreativni rad. Uglavnom se onda čitav posao svodi na instanciranje tamo nekih objekata, vezivanje istih na pravi način, postavljanje nekih relacija, akcija, reakcija, i to je to. "HighLevel" programer je sa MOG stanovištva najobičnija radna snaga i generalno svako ko vidi/shvata poentu STL-a i svih sličnih stvari (JAVA je fantastičan primer) zna da sam u pravu, jer je to osetio na svojoj koži.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: nizovi apstraktnih klasa24.05.2003. u 03:49 - pre 254 meseci
reinventing the wheel 4ever!

asm 4ever!


real programmers use

copy con > virus.exe
 
Odgovor na temu

Reljam
Relja Markovic
San Francisco

Član broj: 531
Poruke: 1793
*.client.attbi.com



+18 Profil

icon Re: nizovi apstraktnih klasa24.05.2003. u 04:34 - pre 254 meseci
Leka, nemoj tako, DT ukazuje na vrlo dobru alternativu. Naravno da je do programera da li ce da koristi pokazivace, C++, neki skript jezik ili ce da ide na plazu. Ali, IMHO, greska je predstavljati kreativnost u programiranju kao koriscenje pokazivaca i optimizovanje na niskom nivou. Kreativnost je u dizajnu sistema, u necemu malo vecem, u biblioteci klasa, itd. Optimizacija se prvo radi na visokom nivou, a dosta kasnije na niskom. Nije tesko koristiti pointere, tesko je napraviti neki veci sistem koji je pritom ekstenzibilan i jeftin za odrzavanje.

Having said that, mislim da je bolja putanja za ucenje da se prvo ovlada pointerima, jer ce i pored STLa Marko morati kad tad sa tim da se suoci. Ali kasnije, kada jedanput to nauci / izvezba, nema vise svrhe izmisljati toplu vodu - onda treba koristiti STL.

Sto se tice jezika bez pointera, takvih vise prakticno i nema (osim ako se neko ne uhvati stare verzije VBa). Imaju doduse mnogo jednostavnije pointere.

Citat:
leka:"HighLevel" programer je sa MOG stanovištva najobičnija radna snaga i generalno svako ko vidi/shvata poentu STL-a i svih sličnih stvari (JAVA je fantastičan primer) zna da sam u pravu, jer je to osetio na svojoj koži.


Zanimljiva ideja. Cisto diskusije radi, koji programeri po tebi onda nisu radna snaga? Mislim cime se oni bave po ceo dan?
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: nizovi apstraktnih klasa24.05.2003. u 10:39 - pre 254 meseci
Citat:
leka:
U pitanju je kreativnost - koristiti gotove STL stvari po meni čoveku ostavljaju sve manje i manje prostora za kreativni rad. Uglavnom se onda čitav posao svodi na instanciranje tamo nekih objekata, vezivanje istih na pravi način, postavljanje nekih relacija, akcija, reakcija, i to je to.


Auuu..
Od kad je to izmisljanje tople vode kreativnost?
Pa majku mu, koja je osnovna poenta OOP-a?
I ko ce to da kaze gde se konacno treba zaustaviti ako krenes tim putem (vidi post zombija)?
U svoj toj prici, gde je tu produktivnost? I ko ce to da placa - da ti radis ono sto mislis da je ove nedelje cool? Ako se radi za svoju dusu ajd jos i da razumem (mada i tada - koja je poenta ponavljanja istog???)

Bez ljutnje, al' zvucis kao da ti je programiranje bolje od seksa.

Commercial-Free !!!
 
Odgovor na temu

marko000
marko vucinic
Beograd

Član broj: 6501
Poruke: 63
*.eunet.yu



Profil

icon Re: nizovi apstraktnih klasa24.05.2003. u 23:02 - pre 254 meseci
sve je to lepo sto ste vi napisali ali meni niko ne odgovori na pitanje ;)))))

salim se,stvarno bi mi znacilo da mi neko obajsni u cemu je fora sa

Predmet **pp=new Predmet *[...int...];

ako je Predmet apstraktna klasa


pozdrav
 
Odgovor na temu

Časlav Ilić
Braunšvajg, Nemačka

Član broj: 4945
Poruke: 565
*.ppp-bg.sezampro.yu



+27 Profil

icon Re: nizovi apstraktnih klasa25.05.2003. u 11:23 - pre 254 meseci
Šta te konkretno zbunjuje? Tim kodom rezervisaćeš prostor za niz pokazivača na klasu Predmet, tj. neće doći do kreiranja instanci klase, pa nema veza što je apstraktna.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.dial.InfoSky.Net



+6 Profil

icon Re: nizovi apstraktnih klasa25.05.2003. u 13:19 - pre 254 meseci
Citat:
leka:
Jesi, dosadan si...


Hvala, trudim se :)

Citat:
leka:
Elem od programera zavisi da li će koristiti pokazivače ili neće. Da budem najiskreniji pa da javno iznesem šta mislim - svako ko kuka o pokazivačima (a na to kukaju svi ljudi koji se bave razvojem softvera u drugim jezicima) treba odmah da prestane da programira u C/C++ i da se pozabavi nekim jezikom koji nema pokazivače, niti namerava da ima... :)


A ko je protiv pokazivača? Pokazivače treba koristiti za ono za šta su originalno i napravljeni - da se drži adresa neke promenljive/objekta u njoj. Ja sam protiv korišćenja C-like nizova, jer su nečitljivi i zahtevaju puno koncentracije kad se radi sa njima. Što se performansi tiče, STL šabloni su pravljeni tako da omoguće zero-overhead; vector u odnosu na C nizove nije ni malo sporiji. Mada, istina je da u nekim implementacijama (npr VC++) korišćenje C++ standardne biblioteke implicira i povezivanje (statičko ili dinamičko) sa još jednom dodatnom bibliotekom.

Citat:

A sada ja malo ja budem dosadan... - Naime, smatram lično da je UPRAVO draž (što napisa jedan mnogo pametniji čovek od mene u jednom članku negde u nekim novinama) programiranja u C/C++ BAŠ korišćenje pokazivača da bi se došlo do kompaktnijeg izvršnog koda, za koji ne treba NNNN Mb RAM-a, NNN GB tvrdog diska i NN GHz procesor(i).


Kao što rekoh gore, ništa od toga nećeš da postigneš ako koristiš C nizove umesto STL šablona.

Citat:

E, sada još malo filosofije... U pitanju je kreativnost - koristiti gotove STL stvari po meni čoveku ostavljaju sve manje i manje prostora za kreativni rad. Uglavnom se onda čitav posao svodi na instanciranje tamo nekih objekata, vezivanje istih na pravi način, postavljanje nekih relacija, akcija, reakcija, i to je to. "HighLevel" programer je sa MOG stanovištva najobičnija radna snaga i generalno svako ko vidi/shvata poentu STL-a i svih sličnih stvari (JAVA je fantastičan primer) zna da sam u pravu, jer je to osetio na svojoj koži.


IMHO, STL te oslobađa od nekreativnog rada - recimo praviti binary search "od nule" je dobra vežba za studente, ali za profesionalnog programera je ne samo gubljenje vremena, već i dosadno. Kakva mi je to kreativnost da se otvori neki udžbenik o algoritmima i da se iskodira nešto odatle u nekom programskom jeziku?

 
Odgovor na temu

alkal
Aleksandar Kalanj
Beograd

Član broj: 7960
Poruke: 26
*.ptt.yu

Jabber: alkal@elitesecurity.org
Sajt: wapdata.co.cc


Profil

icon Re: nizovi apstraktnih klasa25.05.2003. u 14:51 - pre 254 meseci
Da apsolviramo:

Ne može se napraviti objekat tipa apstraktne klase iz
jednostavnog razloga što bi takav objekat bi neodređen.
Stoga, mogući su jedino pokazivači i upućivači (reference)
na objekte tipa apstraktne klase.

Recimo da imaš apstraktnu klasu Predmet i izvedene klase
Knjiga i Frizider, a treba ti niz Predmeta.
Budući da ne možeš koristiti konkretne objekte tipa Predmet
napravićeš niz pokazivača na Predmet.

Ukoliko je niz konstantne dužine:
Code:

Predmet* niz[5];

Ako dužina niza nije poznata u trenutku prevođenja, koristićeš
dinamičko kreiranje niza (pretpostavljam da znaš vezu između
nizova i pokazivača):
Code:

Predmet* *niz;
// ... Ucitaj duzinu niza - n.
niz = new Predmet* [n];

niz[0] = new Knjiga();
niz[1] = new Frizider();
// ...

Ukoliko ti ovo izgleda ružno, koristi std::vector<Predmet*> koji
pruža mnogo udobniji rad.
 
Odgovor na temu

marko000
marko vucinic
Beograd

Član broj: 6501
Poruke: 63
*.eunet.yu



Profil

icon Re: nizovi apstraktnih klasa26.05.2003. u 03:07 - pre 254 meseci
alkale ti si kralj...
ne mogu da ti objasnim koliko si mi pomogao
veliki pozdrav

marko
 
Odgovor na temu

[es] :: C/C++ programiranje :: nizovi apstraktnih klasa

[ Pregleda: 5216 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

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