P5 Flashcards

1
Q

Za sta koristimo primitivne tipove

A

Da izgradimo kompleksnije tipove

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Kojeg su tipa var cin i cout

A

Istream i iostream

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Sta omogucava tip string

A

Rad sa varijabilnom duzinom teksta

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Kako rjesavamo probleme pomocu objekata

A

Prvo potrebna klasa kako bi se mogli kreirati objekti zatim kreirani objekti kada se naprave komuniciraju i rijese probl

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Analogija kompleksnih i primitivnih tipova

A

Klasa slicna tipu objekat slican vrijednosti

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Koji je tip objekta i ko to odredjuje

A

Objekat je tipa klase, a klasa je korisnicki definiran tip

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Za sta koristimo string

A

Kada nam treba komad memorije koji mizemo upisivati tekst prozivoljne duzine i da bismo taj tekst mogu procesirati i njime manipulisati

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Opsti format za konstrukciju objekata tipa neke klase (ako su r value)

A

klasa {arg1, arg2, … , argn};
ili
klasa (arg1, arg2, … , argn);

Pri cemu r value znaci da ovaj objekt nije spremljen u memoriju i egzistira samo tokom izvrsavanja datig stejtmenta

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

klasa {arg1, arg2, … , argn};

Sta je klasa, arg

A

Ime klase od koje se pravi objekat a argumentima se inicijalizira objekat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Da li je konstrukcija objekta izraz

A

Jeste vraca vrijednost nekog tipa (tipa klase koja je odabrana)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Sta definira korisnik u klasi

A

Koji tip agrumenata se prosljedjuje i koliko argumenata se proslijedi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Kako se kreira objekat koji nije r value

A

Tako sto se objekat smjesti u varijablu koja se kreira pri konstrukciji objekta.

klasa ime_var{arg1, arg2, .. , arg n};
ili
klasa ime_var(arg1, arg2, .. , argn);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Sta se desava u pozadini
klasa ime_var{arg1, arg2, .. , arg n};

A

Dobije se komad memorije divoljan da se smjesti objekat tipa klase i inicijalizira pomocu argumenata

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Sta je specificno pri konstrukciji objekta sa simbolom =?

A

klasa ime_var = arg1;

OGRANICEN DA PRIMA SAMO JEDAN ARGUMENT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Sintaksa default konstrukcije r value objekta tipa string

A

std::string{};

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Sintaksa default konstrukcije objekta tipa string koji je smjesten u var

A

std::string s;

ne moraju zagrade ako ima var

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Koji je tip var koja sluzi da se u njoj cuva tekst proizvoljne duzine i kako se importuje

A

String
using std::string;

U trenutni ns importuj string iz std i koristi kao da je definisan u istom ns

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Default konstrukcija pravilo

A

Nema argumenata kojim inicijaliziramo objekat tipa string tada u tom objektu nema nikakav tekst - nije nula nije prazno vec nema teksta

Odnosno kreira se var u koju se stavlja objekat tipa string i stavi se objekat u memoriju ali se u ubjekat nista ne smjesta

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Ko odredjuje ponasanje objekta nekog tipa

A

Programer koji definise klasu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Konstrukcija objekta tipa string kao r value i smjesten u var pomocu niza karaktera

A

std::string{“jshajahwj”};
Objekat koji cuva tekts i koji nestane po izvrsenju stejtmenta

std::string ime (“fnshsjsigw”);
Varijabla u kojoj je smjesten objekat tipa string inicijaliziran nizom karaktera

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Zasto mozemo inicijalizirati string pomocu niza karaktera?

A

Zato jer je moguce implicitno konvertovati const char* u string

Sliva se uploadaju u memoriju i koriste za inicijalizaciju ibjekta tipa string te upload u var

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Sintaksa kopi konstrukcije

A

std::string {std:: string (“hahahaj”)};
ili
std::string s(“hahhahaha”);
std string h(s);

23
Q

Objasnjenje kopi konstrukcije

A

Pravimo jedan objekat tipa string pmocu drugog objekta tog istog tipa
Bejzikli kloniranje

Slovo se kopira jedno po jedno u drugu varijablu
Na mjestu nove varijable se pojavi ono sto je procitano iz memorije koju kotnrolise varijabla koju smo koristili za inicijalizaciju

24
Q

Sta imamo u memoriji nakon kopi konstrukcije

A

Postoje 2 objekta tipa string u memoriji a u prvom ce biti tekst iz drugog

25
Q

Konstrukcije pomocu tipa int i char

A

Ovaj konstruktor uzima jedan cijeli broj i jedan karakter u () ili {} i dobijemo objekat tipa string u kom se nalazi int puta karakter

26
Q

Zasto se ne moze koristiti = za argumentovanje pri int char konstrukciji stringa

A

Jer = uzima samo jedan argument i u string bi se spremio samo broj

27
Q

Sta je metod

A

Fja koja operira na stanju
Odnosno PONASANJE objekta

28
Q

Gdje se definiraju metodi nad kolpleksnim tipovima

A

U klasama od kojih se prave objekti tog tipa

29
Q

Lako se pozivaju i izvrsavaju metodi

A

Putem operatora .
Koji je binarni operator s cije lijeve strane je ibjekat nekog tipa odn klase a s desne strane ime metoda

30
Q

Na cemu se pozivaju metodi i sta oni rade

A

Nad objektima i treba da promijene interni stanje objekta ili da na osnov stanja objekta proizvede neku vrijednost

31
Q

Da li se metodi mogu pozivati iskljucivo nad objektima koji su spremlkeni u var

A

NE moze biti i r value

32
Q

Forma poziva metida

A

objekat.ime_metoda(arg1, arg2,…,argn);

33
Q

Sta se dobije nakon izvrsenja metoda (izraza)

A

Dobijemo nazad vriejdnost tipa koji je dat u definiciji metoda u klasi

34
Q

Sta se sve definira kod modula u klasi

A

Kakvi objekti koja stanja koji modulu broj argumenata i tip arg

35
Q

Koji metode imamo nad stringom

A

Size, operator+, at…

36
Q

Metod .size()

A

Vraca nazad broj slova koji se nalaze u objektu tipa string

37
Q

Operator+ konkatnejt

A

Spajanje stringiva metodama nadovezivanja
Cita sadrzaj objekta varijable i na njega nadiveze sadrzaj objekta druge var

38
Q

Objasni operator + za string char

A

Ako su 2 stringa + je definisan
2 chara + je error
A za string i char moguce je pukom srecom ako se lijevo nalazi objekat tipa string a desno nesto sto se moze implicitno konvertovati u string kao sto je const char, da je drugi redoslijed rezultirao bi nedefinisanim ponasanjem

39
Q

Kako se indeksiraju objekti klase string (kao C)

A

Pomcu unarnog operatora [] pri cemu indeks pocinje sa 0 i inedksi su cijeli brojevo.
Ovaj operstor ne provjerava validnost granica unutar stringa i ukoliko se indeksira van granica proizvodu nedefinirano ponasanje

40
Q

Ukoliko se desi nedefinirano ponasanje sta ce bit

A

Svi stejtmenti nakon UB su takodje nedefinirani iako bi taj dio koda u suprotnoom imao smisla

41
Q

Metod .at()

A

Sluzi za indeksiranje objekata tipa string ali to je sugurno indeksiranje jer Provjerava granice -> ima dodatni if check

Ako se indeksira izvan granica generisat ce se iznimka

42
Q

Za sta se koristi indeksiranje putem [] i metoda .at() i koja je razlika

A

Razlika je u performansi -> [] je brzi ali nije sigurniji

A indeksiranje se koristi kako bi se mkdifikovalo stanje objekta tipa string -> ako je sa desne strane = tada za citanje a ako je sa lijeve tada za pisanje na poziciju indeksiranu tim cijelim brojem

43
Q

Sta je kontejner u oop

A

Tip koji u sebi cuva proizvoljnu sekvencu elemenata bilo kojeg tipa

44
Q

Kako mozemo koristiti vektor

A

Ukljucimo zaglavlje incc<vector></vector>

45
Q

Mogu li u vektoru da budu elementi razlicitog tipa

A

NE, samo elementi istog tipa
Vektor je kontejner koji cuva elemente odgovarajuceg tipa

46
Q

Kako definiramo vektor obzirom da je genericka klasa

A

vector<tip_elemenata> {};</tip_elemenata>

Mora se definirati <> ako ne definiramo to je error a u {} se prosljedjuju elementi

47
Q

Koje operacije se mogu vrsitu nad vektorom / koji moduli

A

Indeksiranje [], .at() metod, .size() metod, .push_back(), .pop_back(), .back(), begin(), .end()
Ali operator+ NE POSTOJI, nije definisan za vektore

48
Q

Sta je moguce koristenjem metoda push back

A

Prosirivanje vektora u bilo kom trenutku sa elementom koji se proslijedi kao qrgument metoda

49
Q

Da li vektori moraju biti kontejneri primitivnih tipova

A

Ne, mogu biti i kontejneri objekata

50
Q

Razlika stringa i vektora

A

String se ponasa slicno vektoru odn sluzi kao kontejner karaktera

51
Q

Sta omogucaba indeksiranje kod vektora

A

Indeksiranjem se mogu citati elementi kao kod stringova i modificirati odredjeni elementi na pozicijama

Te isto kao kod stringa indeksiranje van granica je UB

52
Q

Ako imamo vector<string>[0][0]</string>

A

Indeksiran je prvi string i prvi karakter prvog stringa

53
Q

Ako imamo vector<double> v(8, 2.5) i vector<double> s{8, 2.5}
Razlika?</double></double>

A

Mala zadgrada 8 elemenata =2.5

Velika zagrada 2 elementa 8 i 2.5