» »

[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!
  • spremenil: Mavrik ()

ragezor ::

kaj je strukturirano programiranje?

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...

ragezor ::

Apple ::

Poglej si prek Googla razliko med Cobolom in (C++ ali Javo)
LP, Apple


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C++]Uporaba strukture v drugi .cpp datoteki

Oddelek: Programiranje
143118 (2821) mallard
»

[C] Seznam s poljem

Oddelek: Programiranje
232459 (1939) aceton
»

Java program (strani: 1 2 )

Oddelek: Programiranje
508580 (7729) kunigunda
»

[C#] izdelava tabele

Oddelek: Programiranje
71991 (1817) majoneza
»

PHP OOP

Oddelek: Izdelava spletišč
162188 (1659) Pegaz

Več podobnih tem