ОО1/Питања

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
Овај рок није решен. Помозите SI Wiki тако што ћете га решити.

Ispod su sakupljena razna pitanja sa prezentacija iz predmeta, zasad bez rešenja. Namenjena su za obnavljanje gradiva pred kolokvijum, kako bi studenti mogli da testiraju svoje znanje odgovaranjem na njih.

Uvod

  1. Prilikom izvođenja, da li se stari programski kod mora menjati, opet prevoditi i opet testirati? - Ne.
  2. Šta je apstrakcija? - Prepoznavanje bitnih svojstava skupova sličnih objekata i predstavljanje zajedničkom klasom.
  3. Koja su 3 značajna napretka u evoluciji programskih jezika? - Apstrakcija izraza (FORTRAN), apstrakcija kontrole (Algol60) i apstrakcija podataka (Pascal).
  4. Od koja dva dela se svaka klasa sastoji? - Ugovor (interfejs) i implementacija.
  5. Šta su objekti (i u užem i u širem smislu)? - Objekti su primerci odgovarajućih klasa.
  6. Da li je polimorfizam statički ili dinamički mehanizam? - Dinamički.
  7. Šta je polimorfizam? - Ponašanje objekta ne zavisi samo od tipa pokazivača (upućivača) koji pokazuje na objekat već od tipa pokazivanog (upućivanog) objekta koji je poznat u vreme izvršenja.
  8. Šta su objektno-bazirani jezici, a šta objektno-orijentisani? - Objektno-zasnovani jezici podržavaju: apstrakciju, kapsulaciju i modularnost. Objektno-orijentisani jezici dodatno podržavaju princip nasleđivanja.
  9. Da li je mehanizam obrade izuzetaka svojstven samo za objektno-orijentisane jezike? - Ne.
  10. Da li je mehanizam preklapanja operatora svojstven samo za objektno-orijentisane jezike? - Ne.
  11. Da li se mogu preklopiti svi operatori? - Ne.
  12. Da li je generički mehanizam statički ili dinamički? - Statički.

Proširenja C

  1. Šta je deklaracija, a šta definicija?
  2. Koliko puta se smeju ponoviti deklaracije i definicije jednog istog objekta/funkcije/tipa?
  3. Kakva može promenljiva da bude (i po veku trajanja i po mestu gde se nalazi)?
  4. Šta je l-vrednost, a šta d-vrednost?
  5. Da li uvek sa leve strane znaka = može da stoji l-vrednost?
  6. Koji operatori zahtevaju da im operandi budu l-vrednosti?
  7. Koji operatori bi trebalo da vrate l-vrednost?
  8. Koju oblast važenja imaju i koliko traju: lokalna imena, globalna imena, statički objekti, dinamički objekti, automatski objekti, privremeni objekti?
  9. Da li je moguće na neki način pristupiti globalnom imenu ukoliko je ono sakriveno od strane lokalnog imena, a lokalnom imenu u spoljašnjem bloku ukoliko je ono sakriveno od strane lokalnog imena u unutrašnjem bloku?
  10. Da li se u uslovu if može definisati neka promenljiva i ako da kakva mora da bude i koliko ona traje?
  11. Da li je unutar funkcije moguće imati promenljivu istog imena kao neki od parametara i ako ne koji je razlog?
  12. Koju oblast važenja imaju članovi strukture/klase?
  13. Na koje sve načine se može pristupiti imenima članovima klase, van te klase?
  14. Koju oblast važenja imaju labele?
  15. Da li je moguće sa goto naredbom preskočiti definiciju neke promenljive i skočiti na labelu koja se nalazi nakon nje?
  16. Kada se kreiraju statički objekti?
  17. Da li je C++ strogo ili labavo tipiziran jezik?
  18. Koja je razlika između 4 kast operatora i kad se koji koristi?
  19. Na koja dva načina možemo implementirati kastovanje (navesti mane ukoliko ih ima neki način)?
  20. Šta radi operator decltype, da li računa izraz?
  21. Koja je bitna razlika između decltype i auto?
  22. Da li se auto može koristiti sa povratnom vrednosti funkcije i u kojim slučajevima?
  23. Kog je tipa string literal u C++ ("abcd")?
  24. Kakvu razliku pravi pozicija gde se nalazi reč const u definiciji pokazivača?
  25. Na koje načine je moguće pristupiti imenu iz nekog prostora imena?
  26. Da li je validno imati objekat istog imena kao i neki tip?
  27. Da li je moguće imati isto ime (identifikator) za dve različite stvari u jednom prostoru imena, tj. da ime nije jednoznačno?
  28. Koji operatori su definisani za tipove nabrajanja (enum)?
  29. Koje konverzije postoje za tipove nabrajanja?
  30. Da li je moguće definisati koji tip koristi "under-the-hood" tip nabrajanja, da se ne koristi uvek int, i kako?
  31. Koja je razlika između običnog tipa nabrajanja i tipa nabrajanja sa ograničenim dosegom (enum class)?
  32. Kako se koristi incijalizatorska lista prilikom kreiranja unije?
  33. Šta se dešava ukoliko inicijalizatorska lista sadrži više vrednosti nego što ima podataka ta struktura?
  34. Da li se inicijalizatorske liste mogu koristiti pri dodeli vrednosti?
  35. Kako se pristupa poljima bezimene unije/strukture?
  36. Da li je unija/struktura bezimena ako nema ime a ipak kreiramo bar jedan objekat ili pokazivač tog tipa?
  37. Na koji način radi mutable polje?
  38. Šta se dešava ukoliko operator new ne uspe da alocira memoriju jer nema dovoljno prostora?
  39. Šta se dešava ukoliko pokušamo da obrišemo nullptr sa delete operatorom?
  40. Šta vraća operator delete?
  41. Ukoliko dinamički alociramo matricu (više-dimenzioni niz, a ne niz nizova (new Tacka[10][10])) da li dimenzije mogu biti promenljivi izrazi ili moraju biti konstante?
  42. Da li je moguće napraviti niz referenci, pokazivač na referencu, referencu na pokazivač ili referencu na referencu?
  43. Da li "moderna" verzija for-petlje (for(tip prom: niz) naredba) u svakom ciklusu petlje sadrži referencu ili kopiju tekućeg elementa niza, tj. da li promena objekta prom utiče na niz?
  44. Da li je referenca na d-vrednost takođe d-vrednost ili je l-vrednost?
  45. Da li referenca na d-vrednost može upućivati na konstantnu/nepromenljivu d-vrednost?
  46. Da li parametri funkcije mogu biti tipa reference na d-vrednost?
  47. Da li je dozvoljeno inicijalizovati referencu na d-vrednost pomoću l-vrednosti?
  48. Gde treba da se nalazi deklaracija funkcije koja se neposredno ugrađuje (inline funkcije)?
  49. Kada se računaju podrazumevane vrednosti argumenata?
  50. Da li je mehanizam preklapanja imena funkcije statički ili dinamički?
  51. Da li je dovoljno da se samo tipovi rezultata razlikuju da bi postojale dve funkcije istog imena?
  52. Da li rezultat ternarnog operatora može biti l-vrednost?
  53. Da li su reinterpretirajuća i konstantna konverzija bezbedne?

Klase i objekti

  1. Kako se formalnije nazivaju podaci i funkcije koji su deo klase? - Podaci = atributi, funkcije = metodi.
  2. Kako se naziva objekat koji poziva neki metod, a kako onaj čiji je metod pozvan? - Objekat koji poziva metod naziva se objekat-klijent, a objekat čiji se metod poziva je objekat-server.
  3. Da li može biti više sekcija vidljivosti iste vrste? - Može.
  4. Koja je podrazumevana sekcija, ako se ne navede nijedna druga? - Privatna (private).
  5. Da li atribut klase može biti tipa iste te klase, a šta važi ako je referenca ili pokazivač na taj tip? - Atributi ne mogu da budu tipa klase koja se definiše, ali mogu da budu pokazivači ili reference na tu klasu.
  6. Da li rezultati i parametri metoda mogu biti tipa iste te klase, a šta važi ako je referenca ili pokazivač na taj tip? - Vrednost rezultata, kao i parametri mogu da budu tipa klase čiji su članovi kao i tipa pokazivača ili reference na tu klasu.
  7. Na koji način možemo baratati sa objektima neke klase ukoliko imamo njenu deklaraciju, a ne i definiciju? - Pre definicije klase, a posle deklaracije mogu da se definišu pokazivači i reference na tu klasu, a ne mogu da se definišu objekti te klase.
  8. Koji operatori su ugrađeni, podrazumevani? - = & * . -> []
  9. Kog je tipa pokazivač this? - Tip ovog pokazivača je "konstantni pokazivač na klasu čiji je metod član".
  10. Da li je dozvoljeno u metodi imati parametar istog imena kao i neki atribut te klase? - Da.
  11. Šta su metodi inspektori, a šta mutatori? - Metod koji ne menja stanje objekta je inspektor, a metod koji može i da menja stanje objekta je mutator.
  12. Kog je tipa pokazivač this u inspektor metodama? - const X*const
  13. U koju svrhu se koristi modifikator volatile? - Kao napomena prevodiocu da ne vrši neke optimizacije jer objekat može da promeni stanje nezavisno od toka funkcije.
  14. Da li je dovoljno da se dva metoda razliku samo u modifikatorima? - Da.
  15. Koji sve modifikatori postoje? - const, volatile, &, &&
  16. Koji je tip rezultata konstruktora? - Konstruktor nema tip rezultata (ni void).
  17. Da li konstruktor može imati parametar tipa te klase? - Ne može ako je jedini parametar.
  18. Kada se briše podrazumevani ugrađeni konstruktor? - Definisanjem nekog novog konstruktora se suspenduje ugrađeni.
  19. Da li je moguće kreirati niz objekata neke klase ukoliko ta klasa nema podrazumevani konstruktor? - Ne, jer se podrazumevani konstruktor poziva za svaki element niza.
  20. Da li je dozvoljeno ostaviti prazne zagrade pri definiciji automatskog objekta? - Nisu dozvoljene prazne zagrade () jer bi to bi se prevelo kao deklaracija.
  21. Koja je svrha explicit reči kod konstruktora? - Sprečavanje implicitne konverzije.
  22. Kojim redosledom se izvršava incijalizacija atributa klase? - Redosledom navođenja u klasi.
  23. Da li atribut može da ima inicijalizator i u telu klase i u definiciji konstruktora? - Može. Ako atribut ima inicijalizator u telu klase i u definiciji konstruktora, primenjuje se inicijalizator iz definicije konstruktora.
  24. Kada je inicijalizacija atributa neophodna? - Inicijalizacija je neophodna: kada ne postoji podrazumevani konstruktor klase atributa, kada je atribut nepromenljiv podatak i kada je atribut referenca.
  25. Šta sme da postoji u listi incijalizatora kod delegirajućeg konstruktora? - Poziv drugog (ciljnog) konstruktora iste klase.
  26. Da li je prevodilac otkriva rekurzivno delegiranje (da se konstruktori ciklično pozivaju)? - Ne mora da je otkrije i tada se ulazi u beskonačnu rekurziju.
  27. Kako se implicitno briše kopirajući, a kako premeštajući konstruktor? - Kopirajući konstruktor implicitno se suspenduje pisanjem premeštajućeg konstruktora ili premeštajućeg operatora dodele. Ugrađeni premeštajući konstruktor se suspenduje ako se eksplicitno definiše: premeštajući konstruktor, kopirajući konstruktor, destruktor ili operator dodele.
  28. Kog tipa može biti parametar konstruktora kopije i da li može imati još parametara sa podrazumevanim vrednostima? - Konstruktor kopije ima parametar tipa XX& ili const XX&. Ostali parametri kopirajućeg konstruktora moraju da imaju podrazumevane vrednosti.
  29. Zašto se mora eksplicitno pisati premeštajući konstruktor ukoliko nam je potreban, tj. zašto nam nije dovoljan ugrađeni? - Zato što ugrađeni premeštajući konstruktor pravi plitku kopiju originala.
  30. Kog tipa može biti parametar konstruktora premeštanja i da li može imati još parametara sa podrazumevanim vrednostima? - Parametar premeštajućeg konst. je referenca na dvrednost: XX&&. Ostali parametri moraju da imaju podrazumevane vrednosti.
  31. Koji konstruktor se može pozvati ukoliko premeštajući ne postoji? - Ako u klasi ne postoji premeštajući, poziva se kopirajući konstruktor.
  32. Kog tipa rezultata je destruktor? - Nema tip rezultata.
  33. Da li destruktor može imati parametre i da li oni mogu imati podrazumevane vrednosti? - Ne može da ima parametre.
  34. Da li se destruktor može eksplicitno pozvati? - Može, npr. x.~X().
  35. Da li se statički atribut može i definisati u klasi, i koji slučaj je izuzetak? - U klasi se statički atribut samo deklariše, a definiše se na globalnom nivou. Izuzetak je imenovana celobrojna konstanta koja može da se definiše i u definiciji klase.
  36. Čime se inicijalizuje statički atribut ako se ne navede inicijalizator u definiciji? - Nulom.
  37. Da li se telo statičke metode može nalaziti u definiciji klase? - Može.
  38. Da li statičke metode mogu imati modifikatore? - Da.
  39. Šta se dešava ako preko konkretnog objekta pozovemo statički metod? - Klasa pokazanog objekta kao levog operanda se određuje statički.
  40. Da li je moguće pozvati statički metod ako nije kreiran nijedan objekat te klase? - Da.
  41. Koje osobine ima prijateljstvo među klasama? - Prijatelji klase mogu da pristupaju njenim privatnim članovima. Prijateljstvo je relacija koja reguliše isključivo pravo pristupa, a ne oblast važenja i vidljivost identifikatora. Prijateljstvo se ne nasleđuje, nije simetrična relacija i nije tranzitivna relacija
  42. Da li je moguće definisati prijateljsku metodu unutar definicije klase, da li se tad podrazumeva inline? - Ako se u definiciji klase navodi definicija prijateljske funkcije podrazumeva se inline.
  43. Da li je bitno gde se oznaka prijateljstva nalazi, tj. u kojoj sekciji klase? - Nije.
  44. Da li prijateljska funkcija ima pokazivač this u sebi? - Prijateljska funkcija nema pokazivač this na objekat klase kojoj je prijatelj,
  45. Da li prijateljske globalne funkcije mogu imati modifikatore, npr. const? - Modifikator nema smisla za globalnu prijateljsku funkciju.
  46. Da li je moguća konverzija tipa nad kojim je pozvan objekat (skrivenog argumenta) u drugi tip? - Nije moguća konverzija skrivenog argumenta u drugi tip.
  47. Da li se doseg imena okružujuće klase proteže na ugnježdenu klasu i obratno? - Ugnežđena klasa (tip) se nalazi u dosegu imena okružujuće klase. Izvan okružujuće klase imenu ugnežđene klase može da se pristupi samo preko operatora proširenja dosega imena ::
  48. Da li je se u ugnježdenoj klasi može direktno pristupiti ne-statičkim poljima okružujuće klase? - Ne.
  49. Da li postoji neka relacija prijateljstva između ugnježdene i okružujuće klase? - Ugnežđena klasa je implicitno prijatelj okružujuće klase, ali okružujuća klasa nije prijatelj ugnežđene.
  50. Koju oblast važenja imaju lokalne klase? - Od deklaracije do kraja bloka u kojem je deklarisana.
  51. Da li je u lokalnoj klasi dozvoljeno pristupiti lokalnim promenljivama, a da li statičkim lokalnim promenljivama? - Dozvoljeno je samo pristupati statičkim lokalnim promenljivama.
  52. Da li metodi lokalne klase mogu da se definišu van definicije klase? - Ne. Metodi lokalne klase moraju da se definišu unutar definicije klase.
  53. Da li lokalna klasa može da ima statičke atribute? - Ne može.

Preklapanje operatora

  1. Koji operatori se ne mogu preklopiti?
  2. Da li je moguće promeniti osobine operatora?
  3. Kako se pišu operatori ako se simbol operatora sastoji od slova (npr. new)?
  4. Da li operatorske funkcije mogu imati podrazumevane vrednosti?
  5. Da li operatorske metode mogu biti statički?
  6. Da li operatorske metode mogu imati modifikatore?
  7. Da li je moguće napisati operatorsku funkciju gde nijedan parametar nije klasnog tipa?
  8. Da li je moguće u programu imati isti operator i kao metod i kao globalnu funkciju?
  9. Da li operatorski metod dozvoljava konverzije?
  10. Kako se piše operatorska funkcija ako prvi operand nije klasnog tipa?
  11. Koji operatori moraju biti ne-statički?
  12. Kada se brišu ugrađeni kopirajući i premeštajući operatori dodele?
  13. Kako se razlikuje postfiksna i prefiksna varijanta prilikom pisanja inkrementirajućeg i dekrementirajućeg operatora?
  14. Šta su funkcijska klasa i funkcijski objekat?
  15. Kako se preklapa operator ->?
  16. Kog tipa treba da bude povratna vrednost operatora ->?
  17. Kog tipa može da bude povratna vrednost kast operatora?
  18. Kako se piše kast operator, šta se mora izostaviti u deklaraciji i definiciji?
  19. Na koja dva načina se može pozvati kast operator i koje ograničenje važi za jedan od načina?
  20. Koja je uloga modifikatora explicit kod kast operatora?
  21. Kako se preklapaju operatori new i delete?
  22. Da li funkcije za operatore new i delete treba da pozivaju konstruktore/destruktore?
  23. Koju povratnu vrednost treba da ima operator new?
  24. Da li klasa može imati više preklopljenjih operatora new i kako se to postiže?
  25. Koliko preklopljenjih operatora delete funkcija može da ima?
  26. Kako se unutar preklopljenjih operatora new i delete pozivaju ugrađeni operatori new i delete?
  27. Da li operatori new i delete mogu biti virtuelni?
  28. Da li se operatori new i delete nasleđuju?
  29. Šta trebaju da vraćaju operatorske funkcije << i >> kada se realizuje unos/ispis?
  30. Da li operatorske funkcije za unos/ispis mogu biti metode?
  31. Koji operatori se mogu napisati za nabrajajuće tipove?

Izvođenje

  1. Šta je višestruko izvođenje, da li je to i izvođenje iz već izvedene klase?
  2. Šta označava modifikator final kod klasa, a šta kod metoda?
  3. Da li se može reč final pojaviti i kao identifikator?
  4. Šta izvedena klasa ne nasleđuje iz osnovne?
  5. U kojim slučajevima se može pristupiti zaštićenim članovima iz metoda izvedene klase?
  6. Kako se može eksplicitno promeniti pravo pristupa nasleđenom članu, i da li se može promeniti pravo pristupa članu koji je u osnovnoj klasi privatan?
  7. Koja je razlika između javnog, privatnog i zaštićenog izvođenja, u kojim slučajevima objekat izvedene klase može da zameni objekat osnovne klase?
  8. Šta se dešava ukoliko u izvedenoj klasi napiše metod koji ima isto ime kao metod iz osnovne klase?
  9. Na koji način se može pristupiti sakrivenom polju osnovne klase?
  10. Kako se prilikom zaštićenog i privatnog izvođenja restaurira vidljivost svih metoda nekog imena, a kako samo pojedinačnog?
  11. Da li se konstruktori nasleđuju prilikom izvođenja?
  12. Šta se dešava kad se uvezu konstruktori?
  13. Koje izvođenje je podrazumevano?
  14. Da li se može izvesti iz unije i da li unije mogu izvoditi?
  15. Da li konstruktor može inicijalizovati nasleđene atribute?
  16. Da li je objekat izvedene klase uvek i objekat osnovne klase?
  17. Da li se virtuelnost funkcije nasleđuje, tj. da li se u izvedenim klasama mora navesti da je funkcija virtuelna?
  18. U kojim stvarima se potpis metode u izvedenoj klasi sme razlikovati od potpisa virtuelne metode u osnovnoj klasi, šta se dešava ako se razlikuje više?
  19. Da li se svaki virtuelni metod mora definisati u svakoj izvedenoj klasi i šta se dešava ako neki nije napisan?
  20. Kada se aktivira virtuelni mehanizam, tj. kako se objektu mora pristupiti?
  21. Koja je svrha modifikatora override, da li je to rezervisana reč?
  22. Da li se i override i final mogu zajedno naći u potpisu metoda?
  23. Šta dodatno sadrži svaki objekat polimorfne klase?
  24. Da li statičke metode i globalne prijateljske funkcije mogu biti polimorfne, ako ne mogu kako se onda postiže polimorfno ponašanje kod njih?
  25. Da li konstruktori i destruktori mogu biti virtuelni i zašto?
  26. Da li izvedena klasa treba eksplicitno pozvati destruktor osnovne klase?
  27. Da li je niz objekata izvedene klase jedna vrsta niza objekata osnovne klase, da li se mogu bezbedno konvertovati, da li postoji slučaj kad može doći do greške i da li prevodilac to može otkriti?
  28. Da li je dozvoljena konverzija niza pokazivača na objekte izvedene klase u niz pokazivača na objekte osnovne klase?
  29. Kada je klasa virtuelna, a kada apstraktna?
  30. Da li je moguće imati primere apstraktne klase, a šta važi za pokazivače i reference takve klase?
  31. Kako je moguće sprečiti stvaranje objekata klase čije su svi metode konkretne i ne-apstraktne?
  32. Da li klasa može da ima apstraktni destruktor bez definicije?
  33. Da li klasa izvedena iz apstraktne klase mora da definiše sve apstraktne metode i šta se dešava ukoliko ih ne definiše?
  34. Da li apstraktna klasa može da ima konstruktor i kako on radi?
  35. Kakva mora da bude klasa pokazivača/reference koja se šalje kao parametar operatoru dynamic_cast?
  36. Šta se dešava ukoliko pokazivač/referenca prosleđeni operatoru dynamic_cast ipak ne upućuju na objekat izvedene klase (ili klase još izvedenije iz nje) u koju se vrši konverzija?
  37. Da li operator typeid izračunava izraz?
  38. Šta vraća operator typeid kad je upotrebljen nad objektom polimorfne klase (u obliku reference ili dereferenciranog pokazivača), a šta nad objektom ne-polimorfne klase?
  39. Šta se dešava ukoliko se u izrazu prosleđenom typeid operatoru dereferencira nullptr pokazivač?
  40. Koji koncept uvodi operator typeid?
  41. Koji tip objekta vraća operator typeid i da li je moguće sačuvati njegov rezultat u promenljivu i zašto?
  42. Šta je problem dijamant strukture i kako se rešava?
  43. Kojim redosledom se izvršava konstrukcija pri višestrukom nasleđivanju?

Izuzeci

  1. Kog tipa može biti bačeni izuzetak?
  2. Da li operator noexcept izračunava izraz i na koji način onda gleda tačnost?
  3. Kojim redosledom treba navoditi rukovaoce?
  4. Koji je životni vek bačenog objekta?
  5. Šta se dešava ukoliko je bačen lokalni objekat?
  6. Šta se dešava sa atributima klase ukoliko se desi izuzetak u konstruktoru koji propagira van konstruktora?
  7. Koja je svrha funkcijske naredbe try?
  8. Da li se u rukovaocima funkcijske naredbe try mogu koristiti parametri funkcije?
  9. Šta moraju da urade rukovaoci funkcijske naredbe try na kraju svog izvršavanja?
  10. Da li se treba pristupati atributima i nasleđenom podobjektu unutar rukovaoca funkcijskog try bloka konstruktora?
  11. Šta se dešava na kraju rukovaoca funkcijskog try bloka konstruktora?
  12. Čemu je ekvivalentan modifikator noexcept?
  13. Da li konstruktor sa funkcijskim try blokom sme imati noexcept?
  14. Šta se dešava ukoliko se za neki izuzetak ne pronađe rukovalac?
  15. Šta podrazumevano radi funkcija terminate() i da li je to moguće promeniti, i ukoliko je moguće šta ta alternativna funkcija mora na kraju da uradi?
  16. Šta se dešava ukoliko se u funkciji desi neočekivan izuzetak (u funkciji označenoj sa noexcept ili ako izuzetak nije na listi očekivanih izuzetaka)?
  17. Šta podrazumevano radi funkcija terminate() i da li je to moguće promeniti, i ukoliko je moguće šta ta alternativna funkcija mora na kraju da uradi?
  18. Da li ijedna metoda klase izvedene iz std::exception sme da baci izuzetak i zašto?

Šabloni

  1. Da li je mehanizam generika statički ili dinamički?
  2. Da li ima smisla odvojeno prevođenje šablona, tj. pisanje istih u .cpp datotekama i koja je mana toga?
  3. Šta mogu biti formalni parametri šablona?
  4. Kako se na zahtev generišu konkretne funkcije i klase iz šablona?
  5. Da li se implicitno mogu generisati konkretne funkcije i klase iz šablona i pod kojim uslovima?
  6. Kada je neophodno eksplicitno navesti stvarne argumente šablona funkcije?
  7. Kada će biti sprečeno automatsko generisanje funkcije iz šablona, a kako se može forsirati generisanje funkcije iz šablona?
  8. Da li se pri generisanju klase iz šablona generišu i sve njene virtuelne metode?
  9. Da li se može imenovati klasa pri generisanju iz šablona?
  10. Da li argumenti šablona mogu da imaju podrazumevane vrednosti i šta se dešava pri implicitnom zaključivanju kod šablonskih funkcija?
  11. Da li se podrazumevane vrednosti argumenata moraju navesti i prilikom definicije svakog metoda šablonske klase ili je dovoljno samo jednom prilikom definicije/deklaracije klase?
  12. Ako je formalni parametar šablona konstanta, kog tipa mora da bude?
  13. Iz kog razloga su samo konstantne dozvoljene kao parametri šablona, a ne i promenljive?
  14. Da li raniji formalni parametri se mogu koristiti za podrazumevane/početne vrednosti kasnijih parametara šablona?
  15. Da li funkcije mogu biti parametri šablona i ako ne šta se u tom slučaju radi?
  16. Kakvi su konstruktori inicijalizatorske liste?
  17. Koje javne metode imaju inicijalizatorske liste?
  18. Kako pišemo konstruktor klase ako želimo da objekat inicijalizujemo inicijalizatorskom listom proizvoljne dužine?
  19. Da li se argumenti konstruktora mogu navesti pomoću incijalizatorske liste i koja razlika postoji između tog načina i poziva konstruktora čiji je parametar inicijalizatorska lista?
  20. U kom slučaju se neće pozvati konstruktor koji prima inicijalizatorsku listu, a objekat se inicijalizuje inicijalizatorskom listom?
  21. Da li parametri šablona prilikom specijalizacije mogu imati podrazumevane vrednosti?
  22. Koja ograničenja važe za specijalizaciju šablona funkcije?
  23. Kada je specijalizacija moguća, a kada prestaje biti moguća?
  24. Šta se dešava ukoliko imamo više podjednako specijalizovanih šablona, kako se odlučuje koji šablon je najspecijalizovaniji?
  25. Da li metode klase mogu biti generičke, da li takve metode mogu biti virtuelne i da li mogu biti definisane i van klase?
  26. Da li konstruktori i destruktori mogu da budu generički (bez obzira na to da li je klasa generička)?
  27. Kako se pozivaju generički metodi, a kako generički konstruktori?
  28. Da li ugnježdene klase mogu da budu generičke i kakva mora da bude spoljašnja klasa?