Nisam pogledao klip, izvinjavam se ako je već bilo spomenuto! U pitanju je stanje objekta - object state - možda pod time nađete više informacija na internetu.
Npr. ponovo primer sa bankom:
Code:
class BankovniRacun
{
int stanje_racuna;
std::string ime_vlasnika;
public:
void dodaj(int iznos);
void skini(int iznos);
BankovniRacun(std::string ime){ ime_vlasnika = ime; stanje_racuna = 0; }
};
// Napravi dva racuna
BankovniRacun rac1("Nemanja");
BankovniRacun rac2("Milica");
// Dodaj neki iznos
rac1.dodaj(1000);
rac2.dodaj(5000);
Oba ova objekta opisuje ista klasa - BankovniRacun, međutim, svaki objekat čuva svoje stanje - u ovom trenutku, stanje objekta rac1 govori da mu je vlasnik Nemanja, i da ima 1000 dinara na računu. Slično tome, stanje objekta rac2 čuva informacije o tome da je vlasnik Milica, i da ima 5000 dinara na njemu.
Već je ovde rečeno da objekti, pored stanja, imaju i
ponašanje. Ovo dvoje je u jakoj sprezi - kao što ponašanje menja stanje objekta (dodavanje i skidanje novca sa računa), tako i stanje objekta, može da menja ponašanje - npr. ako je stanje na računu posle eventualne operacije skidanja para sa njega negativan, objekat može baciti izuzetak i ne promeniti svoje stanje.
Takođe, ako vas ovo interesuje, možete potražiti po internetu dosta zanimljivih stvari o ovome, npr. exception safety je veoma važna osobina koja opisuje da li se (i kako se) menja stanje objekta nakon što objekat izbaci izuzetak - na primer, strong exception safety garantuje da će nakon izbacivanja izuzetka stanje objekta ostati isto kao i pre pozivanja metode koja izaziva izuzetak - ako ne dozvolimo skidanje više para na računu, ne želimo da naš račun posle izuzetka ostane sa negativnim saldom:
Code:
// loše - ako zahtemo više para, i operacija ne uspe
// objekat ostaje u neupotrebljivom stanju
void BankovniRacun::skini(int iznos)
{
stanje_racuna -= iznos;
if(stanje_racuna < 0)
throw MinusException();
}
// bolje
void BankovniRacun::skini(int iznos)
{
if(stanje_racuna - iznos < 0)
throw MinusException();
stanje_racuna -= iznos;
}