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
Konstrukcije pomocu tipa int i char
Ovaj konstruktor uzima jedan cijeli broj i jedan karakter u () ili {} i dobijemo objekat tipa string u kom se nalazi int puta karakter
26
Zasto se ne moze koristiti = za argumentovanje pri int char konstrukciji stringa
Jer = uzima samo jedan argument i u string bi se spremio samo broj
27
Sta je metod
Fja koja operira na stanju Odnosno PONASANJE objekta
28
Gdje se definiraju metodi nad kolpleksnim tipovima
U klasama od kojih se prave objekti tog tipa
29
Lako se pozivaju i izvrsavaju metodi
Putem operatora . Koji je binarni operator s cije lijeve strane je ibjekat nekog tipa odn klase a s desne strane ime metoda
30
Na cemu se pozivaju metodi i sta oni rade
Nad objektima i treba da promijene interni stanje objekta ili da na osnov stanja objekta proizvede neku vrijednost
31
Da li se metodi mogu pozivati iskljucivo nad objektima koji su spremlkeni u var
NE moze biti i r value
32
Forma poziva metida
objekat.ime_metoda(arg1, arg2,...,argn);
33
Sta se dobije nakon izvrsenja metoda (izraza)
Dobijemo nazad vriejdnost tipa koji je dat u definiciji metoda u klasi
34
Sta se sve definira kod modula u klasi
Kakvi objekti koja stanja koji modulu broj argumenata i tip arg
35
Koji metode imamo nad stringom
Size, operator+, at...
36
Metod .size()
Vraca nazad broj slova koji se nalaze u objektu tipa string
37
Operator+ konkatnejt
Spajanje stringiva metodama nadovezivanja Cita sadrzaj objekta varijable i na njega nadiveze sadrzaj objekta druge var
38
Objasni operator + za string char
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
Kako se indeksiraju objekti klase string (kao C)
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
Ukoliko se desi nedefinirano ponasanje sta ce bit
Svi stejtmenti nakon UB su takodje nedefinirani iako bi taj dio koda u suprotnoom imao smisla
41
Metod .at()
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
Za sta se koristi indeksiranje putem [] i metoda .at() i koja je razlika
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
Sta je kontejner u oop
Tip koji u sebi cuva proizvoljnu sekvencu elemenata bilo kojeg tipa
44
Kako mozemo koristiti vektor
Ukljucimo zaglavlje incc
45
Mogu li u vektoru da budu elementi razlicitog tipa
NE, samo elementi istog tipa Vektor je kontejner koji cuva elemente odgovarajuceg tipa
46
Kako definiramo vektor obzirom da je genericka klasa
vector {}; Mora se definirati <> ako ne definiramo to je error a u {} se prosljedjuju elementi
47
Koje operacije se mogu vrsitu nad vektorom / koji moduli
Indeksiranje [], .at() metod, .size() metod, .push_back(), .pop_back(), .back(), begin(), .end() Ali operator+ NE POSTOJI, nije definisan za vektore
48
Sta je moguce koristenjem metoda push back
Prosirivanje vektora u bilo kom trenutku sa elementom koji se proslijedi kao qrgument metoda
49
Da li vektori moraju biti kontejneri primitivnih tipova
Ne, mogu biti i kontejneri objekata
50
Razlika stringa i vektora
String se ponasa slicno vektoru odn sluzi kao kontejner karaktera
51
Sta omogucaba indeksiranje kod vektora
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
Ako imamo vector[0][0]
Indeksiran je prvi string i prvi karakter prvog stringa
53
Ako imamo vector v(8, 2.5) i vector s{8, 2.5} Razlika?
Mala zadgrada 8 elemenata =2.5 Velika zagrada 2 elementa 8 i 2.5