p3 Flashcards

1
Q

Sta uradimo definicijom varijable

A

Imenujemo komad memorije

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

Sta je ime varijable i za sta ga koristimo

A

Ime var je simbol koji mi uvodimo da ga mozemo koristiti u izrazu odnosno za komunikaciju sa komadom memorije

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

Ako se definise a ne inicijalizira varijabla sta se desi

A

Samo dobijemo komad memorije u kom se nalazi proizvoljna sekvenca bita

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

Koji izrazi se koriste za inicijalizaciju

A

Koriste se (), {}, =
int b{4};
int b(5);
int a = 5;
Gdje = pri inicijalizaciji predstavlja SIMBOL ZA INICIJALIZACIJU, a ne operator

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

Simbol = pri inicijalizaciji

A

Lijevo je simbol (ime varijable koje mu se dodjeli definicijom), a desno vrijednost

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

razlika izmedju
int a=4;
i
int a;
a=4;

A

u prvom slucaju se desava inicijalizacija pri deklaraciji koristeci se SIMBOLOM = koji je simbol za inicijaizaciju, te se sve nalazi u jednom stejtmentu

a u drugom slucaju se nalaze dva stejtmenta gdje u prvom se definise var, a u drugom joj se koristeci OPERATOR = dodjeljuje vrijednost

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

koja je razlika izmedju = () i {} pri inicijalizaciji

A

{} ne dozvoljava demociju odn ne dopusta gubitak podataka, dok sa = i () to je dozvoljeno iako se gube informacije

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

Sta je const u c++

A

Kljucna rijec koja NE oznacava novu tip vec je TYPE QUALIFIER.
Ta kljuxna rijec kompajleru govori da ta varijabla moze figurirati samo u izrazima gdje joj se ne mijenja vrijednkst

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

Kako definisemo neku varijablu kao konstantu i sta to znaci

A

Var definisemo kao konstantu pri definiciji gdje prije tipa varijable upise kljucna rijec const i kao takva se OBAVEZNO mora inicijalizirati

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

const int a =5;
Ili
int const a = 5;

A

Oboje

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

koji je tip varijable pri upotrebi kljucne rijeci const

A

tip ove var se ne mijenja, odn ostaje isti, ali ovakva varijabla ima ogranicen domen upotrebe i u nju se ne moze pisati, vec je moguce samo citati informacije iz iste. takodje nije dozvoljeno koristenje nekonstantnih operacija

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

const int a = 7;

a=5;

greska?

A

varijabla definisana kao konstanta se ne moze koristiti sa lijeve strane operatora dodjeljivanja

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

obavezno kod konstanti?

A

inicijalizacija

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

sta je default initialisation

A

inicijalizacija koja se desava ukoliko definisemo varijablu a ne inicijaliyiamo njenu vrijednost
ta var ima enku vr ali mi ne znamo koju

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

sta je primitivna varijabla

A

varijabla nekog od primitivnih tipova u c++
kao za takve mogu se koristiti sve 3 vrste inicijalizacije sto nije moguce kod svih tipova

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

Sta znaci kljucna rijec auto

A

U kontekstu definicije to znaci type inference (zakljuciti tip)

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

Koji je tip varijable pri upotrebi kljucne rijeci const

A

Tip varijable pri koristenju const se NE MIJENJA vec samo naznacava kompajleru da ta var ima samo jedan domen upotrebe:
U tu var se ne moze pisati nego samo citati iz nje i nije dozvoljeno koristiti nekonstantne operacije

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

Ukoliko pri definiciji varijable vidimo kljucnu rijec auto sta to znaci

A

KOMPAJLER pri definiciji var moze da zakljuxi njen tip i to na osnov tipa vr kojom je inicijalizirana var pri definiciji

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

Gdje se koristi kljucna rijec auto sintaksicku

A

Umjesto tipa varijable pri definiciji sa inicijalizacijom, ide na mjesto tipa

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

Da li upotrebom auto mozemo mijenjati tip varijable dalje u kodu

A

Ne, nakon sto kompajler zakljuci tip te var ona ce dalje u kodu imati taj tip koji je zakljucen iskljucivo

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

Ukratko o auto

A

Da bi kompajler sam zakljucio tip
Na mjestu tipa var pri definiciji sa inicijalizacijom

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

Kada se auto ne moze koristiti

A

Kada nema inicijalizacije jer kompajler bema na osnovu cega da zakljuci top te var

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

const auto tar = false;

A

Const i auto se mogu kombinirati pri definiciji var

Ovo je npr konstantna varijabla tar koja ce uvijek imati vrijednost false, a sam tip var ce odrediti kompajler

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

Sta je blok

A

Sekvenca C++ IZJAVA koja je grupisana u blok koda i ogranicena viticastim zagradama {}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Sta definise blok koda
Opseg/scope
26
Zasto je bitna pozicija definicije varijeble u odnosu na blok
Jer se time utice na njenu vidljivost (dostupnost) i njen zivotni vijek
27
Koliko stejtmenta moze imati blok
Proizvoljno dugu sekvencu stejtmenta ogranicenu {}
28
Sta je vidljivost var i odakle potice
Vidljivost odn dostupnost te var oznacava KADA se moze koristiti ta var da se u nju pise i iz nje cita Vidljivost potice i zavisi od definicije var u odnosu na blok
29
Sta je zivotni vijek var i odakle potice
Zivotni vijek predstavlja koliko je dugo neka varijabla na raspolaganju. Odn kada se memorija zauzme za tu var (kada var nastane) i kada se ta memorija otpusti (kada var nestane) Zavisi od definicije var u odnosu na blok koda
30
Gdje je definirana lokalna var odnosno sta je lokalna var
To je var definirana UNUTAR nekog bloka
31
Kakav je zivitni vijek lokalne var
Ona nastaje pri izvrsavanju stejtmenta(CPU) u kojoj je ona definirana a nestaje po izvrsenjy tog bloka odnosno nakon sto cpu izvrsi zadnji stejtment u tom bloku
32
Ukoliko je var definisana u bloky gdje je ona vidljiva
Vidljiva je u svim stejtmentima od njene definicije do kraja tog bloka programa eventualni y ugnjezdenim blokovima tog bloka
33
Globalna var
Definisana van svih blokova
34
Zivitni vijek glob var
Nastaje prije izvrsenja prve izjave programa (tada joj se alocira memorija) i nestaje neposrredno po zavrsetku izvrsenja zadnje izjave u programu
35
Gdje je vidljiva glob var
U cijelom programu, bilo gdje u kodu
36
Ako se glob var ne inicijalizira
Memorija koja joj je alocirana je popunjena nulama za razliku id default inicijalizacije kod lokalnih varr
37
Ako nije moguca definicija globalne varijable sta se radi
Deklarise se ista a definicjja se moze poslije uraditi
38
Kljucna rijec static uz lokalnu varijablu
Modificira zivotni vijek ali ne i vidljivost
39
Sta mijenja static uz lok var
Var nece nestati izvrsavanjem naredbi bloka u kom je definisana, vec ostaje u memoriji i pri napustanju tog bloka, zadrzava trenutnu vrijednost pa pri sljedecoj iteraciji SE PRESKACE izjava u kojoj je var definisana
40
Lok static i memorija?
Prostor u memoriji alociran static varijabli ostaje savuvan i nakon napustanja bloka
41
Lokalna static var
Postoji sve vrijeme ali nije vidljiva u svim blokovima
42
Global static var
Vidljiva u blokovima zapisanim u ISTOM FAJLU u kojem je izjava sa definicijom te glob var
43
Da li je dozvoljena redefinicija
Unutar jednog bloka globalnog ili lokalnog redefinicija NIJE DOZVOLJENA (nije dozvoljeno definiranje varijable sa istim imenim koje ima varijabla vec prethodno definirana u tom bloku
44
Vazi li pravilo redefincije za ugnjezdene blokove
Ne
45
Kada je redefinicija dozvoljena
U razlicitim opsezima odn blokovima
46
Redefinicija u razlicitkm opsezima
Glob i lok var mogu imati isto ime jer se memorija alocira na razlicitim mjestima
47
Ako je var redefinirana kada pozovemo tu var u bloku hoce li se koristiti lokalna ili goobalna var
Koristi se LOKALNA na globalna bez obzira na vidljivost. Kompajler pregleda kod unazad i trazi najblizu definicijy varijable pod tim imenom SHADOWING
48
Sta je neophodno za kompajliranje
Da bi se c++ program kompajlrao u masinac mora biti definirana PRVA INSTRUKCIJA u programu (entry point) Odnosno da bi se uppste pocelo kompajlirati neophodno je definirati funkciju main
49
Zasto je fja main bitna
To nije kljucna rijec vec nju ocekuje sistem za kompajliranje odnosno LINKER
50
Sta je entry point
Prva izjava unutar bloka koji se zove main
51
Minimalan balidan blok?
int main(){}
52
Sta main radi
Uspostavlja redoslijed izvrsavanja programa
53
Free standing blok u c++
Nije moguc
54
Sta je linker
Zadnja komponenta u kompajliranju On trazi fju main ds napravi program koji se moze ucitati u memorinu i odakle se moze izvrsavati (povevsi od maina)
55
Sta ako nema main
Ukoliko nije definisan main ne moze se proizvesti izvrsna datoteka kojom se pokrece izvrsavanje programa
56
Za sta sluzi namespace
za logicku operaciju koda
57
Sve var u c++ pripadaju nekom namespaceu
Da
58
Kako se kreira novi namespace
namespace ime { // definicije simbola u ns(var, fje, klase... }
59
Pripadaju li blokovi ns
Da i sve ostalo sto je validan stejtment
60
Da li se sta mijenja vezano za var ako se ona definise u ns
Ne, definicija var unutar ns ne ytice na njen zivotni vijek Tako ni na globalni karakter gkobalnih varijabli ako su definirane u ns
61
Ako ne navedemo kojem ns pripadaju simboli gdje su oni?
Tada kompajler implicitno to svrstava u namespace koji je rezervisan za kod koji se ne nalazi ni u kakvom drugom ns. Taj ns je neimenovan a jos se zove i globalni ns
62
Obzirom na definiciju ns Sta je globalna var
Globalna var je var koja se nalazi izvan svih blokova osim namespace bloka u kom je definirana
63
Sta omogucava ns u vidu redefinicije
Omogucava da U ISTOM OPSEGU (BLOKU) mozemo imaati simbol pod istim imenom ppd uslovom da se oni nalaze u razlicitim ns
64
Pristup simbolima definiranim u namespaceu unutar tog ns
Direktno pristupamo koristeci ime tog simbola u izjavi
65
Pristup simbolu iz ns u izjavama van tog ns
POMOCU OPERATORA ::
66
Primjer kako pristupamo simbolu iz drugig ns
imens::simbol
67
Sta je ::
Lijevo asocijativan binarni operator Lijevo uzima vrijednost simbola definiranog kao ns Desno uzima sibol definisan u ns
68
Da li je moguce importovati sve simbole iz jednog ns u drugi
Da, koristimo using namespace imens;
69
Da li je moguce importovati samo npr jedan simbol iz ns u drugi ns
Da koristimo using imens::simbolkojiimportujemo;
70
Sta se desava kada importujemo nesto iz drugog ns
Deklarisemo kompajleru da tretira simbol iz namespacea koji smo importovali kao da je definiran u ns u stejtmentu gdje smo ga importovali
71
Mogu li ns biti ugnjezdeni
Da
72
Da li je definicija novog ns validan stejtment u nekom drugom bloku
Da
73
Kako se pristupa ns ugnjezdenom u drugom ns
Posto je :: operator lijevo asicijativan prvo pristupimo ns pa ugnjezdenom ns pa simbolu ns1::ugnjezdenins::simbol
74
Kako pristupamo simbolu iz neimenovanog ns
Pomocu :: bez da navedemo ime ns lijevo Npr ::simbol;