ОО1/Фебруар 2021
- Za pitanja sa više odgovora, tačni odgovori su podebljani i uokvireni.
- Za pitanja za koje se odgovori unose, tačni odgovori su podvučeni i sakriveni: ovako.
- Pritisnite na sledeće dugme kako biste ih sakrili ili otkrili:
1. zadatak
Šta najbolje opisuje pojam "apstrakcija":
- Odvajanje ugovora od implementacije
- Izdvajanje i grupisanje zajedničkih osobina
- Kreiranje apstraktnih klasa i metoda
- ...
2. zadatak
U sledećem programu na programskom jeziku C++, koji je tip promenljive p?
const int k = 1;
const auto j = k;
auto p = new int + k;
int*const int*intconst intconst int* const
3. zadatak
U metodi m koji je tip pokazivača this?
class X
{
void m() const {};
};
X*const X*X*constconst X*const
4. zadatak
Koji od sledećih tvrđenja su tačni za statičke metode klase X:
- Nemaju pokazivač
this - Imaju pravo pristupa svim članovima X
- Imaju javno pravo pristupa nezavisno od sekcije u kojoj se nalaze
- Mogu da pristupaju statičkim atributima i funkcijama prostim imenovanjem
- Moraju se definisati van tela klase
5. zadatak
Šta ispisuje sledeći program na programskom jeziku C++? Ukoliko se program ne prevodi uneti NP, a ukoliko dođe do greške pri izvršavanju uneti X.
#include <iostream>
using namespace std;
int main() {
int niz[] = {1, 2, 3};
int* p = niz;
p++;
int& ref = *p;
ref++;
cout << niz[0] << niz[1] << niz[2];
}
Rešenje: 133
6. zadatak
Koji je tip argumenta premeštajućeg operatora dodele klase X?
Rešenje: X&&
7. zadatak
Koji su sve ispravni parametri šablona nespecijalizovane generičke klase ili metode:
template<>template<typename T>template<typename T, typename U>template<int N>template<typename T, int N>
8. zadatak
Koji su pravilni načini izvođenja klase B iz klase A?
class B: A {...};class B: override A {...};class B: private protected A {...};class B: private A {...};class B: public A {...};
9. zadatak
Šta ispisuje sledeći program na programskom jeziku C++?
#include <iostream>
using namespace std;
class A {
private:
int a;
public:
A(int aa=0) : a(aa) {}
void m() { cout << 1; }
friend ostream& operator<<(ostream& os,const A& a) { return os << a.a; }
};
class B: public A{
private:
int a;
public:
B(int aa) : a(aa) {}
int m() { cout << 2; return 2; }
};
int main() {
A a(5);
B b(7);
A* ap = &b;
a.m();
b.m();
ap->m();
cout << a << b;
}
Rešenje: 12150
10. zadatak
Šta ispisuje sledeći program na programskom jeziku C++? Zanemariti upozorenja prevodioca
#include <iostream>
using namespace std;
class IzuzO {};
class IzuzI : public IzuzO {};
int main() {
try
{
try
{
throw new IzuzI();
}
catch (IzuzI&) { cout << 1; }
catch (IzuzO&) { cout << 2; }
catch (...) { cout << 3; throw; }
}
catch (IzuzO*) { cout << 4; }
catch (IzuzI*) { cout << 5; }
catch (...) { cout << 6; }
return 0;
}
Rešenje: 34