Forum » Programiranje » [C++] Razlika med objektnin in strukturiranim programiranjem
[C++] Razlika med objektnin in strukturiranim programiranjem
qwertyui ::
Zdravo,
bi mi lahko nekdo nasplošno v dveh ali treh stavkih napisal razliko med objektnim in strukturiranim programiranjem, prosim!
Hvala, LP!
bi mi lahko nekdo nasplošno v dveh ali treh stavkih napisal razliko med objektnim in strukturiranim programiranjem, prosim!
Hvala, LP!
- spremenil: Mavrik ()
ragezor ::
kaj je strukturirano programiranje?
lahko pa ti na hitro razlozim objekte.
ce izhajamo iz Cja imas ponavadi tako kodo:
ustvaris en struct in kasneje napises funkcije, ki vzamejo ta struct kot argument in naredijo nekaj z njim.
tudi tukaj lahko reces, da je posamezna instanca tipa struct player objekt. in funkcija equip je metoda tega objekta.
v C++ pa imas moznosti dati funkcije v struct, kar ti omogoca lepso sintakso zgoraj opisanega
zgornja koda je identicna C kodi. ker C++ ve, da je funkcija equip metoda objekta tipa struct player, ti C++ ze sam da not struct player v funkcijo kot argument in tega ti niti ne vidis. ampak kot vidis lahko v funkciji uporabljas spremenljivko equipment, ki je v bistvu definirana v struct player. ampak kot pravim C++ ve, da je funkcija metoda struct player, bo vedel katero equipment spremenljivko ti mislis.
no in v tej obliki je dosti lazje izvajati tako imenovano objektno programiranje, kar pomeni da si ustvarjas objekte (kot recimo player), kateri imajo svoje metode, ki so ponavadi akcije (equip, move, attack) in to je v bistvu to. k objektnemu programiranju sodi tudi dedovanje, ampak to je lekcija za drugic.
lahko pa ti na hitro razlozim objekte.
ce izhajamo iz Cja imas ponavadi tako kodo:
struct player { /* array of equipped items */ struct item* equipment[MAX_ITEMS]; }; void player_equip (struct player* p, struct item* i) { int s = i->equipment_slot; if (p->equipment[s]) unequip_slot(p, s); p->equipment[s] = i; } struct player* warrior = player_alloc(); equip(warrior, sword)
ustvaris en struct in kasneje napises funkcije, ki vzamejo ta struct kot argument in naredijo nekaj z njim.
tudi tukaj lahko reces, da je posamezna instanca tipa struct player objekt. in funkcija equip je metoda tega objekta.
v C++ pa imas moznosti dati funkcije v struct, kar ti omogoca lepso sintakso zgoraj opisanega
struct player { // array of equipped items struct item* equipment[MAX_ITEMS]; // method to equip items void equip(struct item* i); }; void player::equip(struct item* i) { int s = i->equipment_slot; if (equipment[s]) unequip_slot(s); equipment[s] = i; } // klices funkcijo na objektu struct player warlock; warlock.equip(staff)
zgornja koda je identicna C kodi. ker C++ ve, da je funkcija equip metoda objekta tipa struct player, ti C++ ze sam da not struct player v funkcijo kot argument in tega ti niti ne vidis. ampak kot vidis lahko v funkciji uporabljas spremenljivko equipment, ki je v bistvu definirana v struct player. ampak kot pravim C++ ve, da je funkcija metoda struct player, bo vedel katero equipment spremenljivko ti mislis.
no in v tej obliki je dosti lazje izvajati tako imenovano objektno programiranje, kar pomeni da si ustvarjas objekte (kot recimo player), kateri imajo svoje metode, ki so ponavadi akcije (equip, move, attack) in to je v bistvu to. k objektnemu programiranju sodi tudi dedovanje, ampak to je lekcija za drugic.
Zgodovina sprememb…
- spremenil: ragezor ()
qwertyui ::
Hvala za tole, bi pa prosil če bi mogoče kdo čisto na kratko oz. nasplošno napisal razliko med objektnim in strukturiranim, ker potrebujem za odgovor na vprašanje v enem izpitu...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C++]Uporaba strukture v drugi .cpp datotekiOddelek: Programiranje | 3118 (2821) | mallard |
» | [C] Seznam s poljemOddelek: Programiranje | 2459 (1939) | aceton |
» | Java program (strani: 1 2 )Oddelek: Programiranje | 8580 (7729) | kunigunda |
» | [C#] izdelava tabeleOddelek: Programiranje | 1991 (1817) | majoneza |
» | PHP OOPOddelek: Izdelava spletišč | 2188 (1659) | Pegaz |