ОО1/Фебруар 2021 — разлика између измена
м (Tačne postavke u zadacima 1, 2, 3, 5, 6, 7 i 8 (izvor: `<@443130487989600286>`)) |
м (+{{rešenja}}) |
||
| Ред 1: | Ред 1: | ||
{{tocright}} | {{tocright}} | ||
{{rešenja}} | |||
== 1. zadatak == | == 1. zadatak == | ||
Верзија на датум 28. јун 2021. у 15:32
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
1. zadatak
Koja od navedenih definicija najbolje odgovara apstrakciji kao elementnu objektno orijentisanog stila programiranja?
- Odvajanje interfejsa klase od njene implementacije koja se sakriva od korisnika.
- Prepoznavanje bitnih svojstava skupova sličnih objekata i opisivanje zajedničkom klasom.
- Mogućnost kreiranja apstraktnih klasa i funkcija članica.
- Pristupačnost određenim članovima klase navođenjem prava pristupa.
2. zadatak
Koji je tip promenljive i u sledećem isečku koda napisanom na jeziku C++?
const int j = 1;
const auto k = j;
auto i = new int + k;
const int*int*intconst int* constconst intint *const
3. zadatak
U klasi X je definisan metod m.
class X {
public:
void m(X *x) const {}
};
Kog tipa je pokazivač this u metodu m?
const X * constX*X * constXconst X *
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 smatrate da se program ne prevodi, unesite NP. Ukoliko smatrate da dolazi do greške pri izvršavanju, unesite X)
#include <iostream>
using namespace std;
int main() {
int brojevi[] = {1, 2, 3};
int* pk = brojevi;
pk++;
int& ref = *pk;
ref++;
cout << brojevi[0] << brojevi[1] << brojevi[2];
return 0;
}
Rešenje: 133
6. zadatak
Kog tipa je parametar premeštajućeg operatora dodele za klasu X?
Rešenje: X&&
7. zadatak
Koji od ponuđenih prefiksa opšte (nespecijalizovane) šablonske (genreičke[sic]) funkcije ili klase su ispravni?
template<typename T>template<typename T, int N>template<int N>template<typename T, typename U>template<>
8. zadatak
Na koje sve načine je moguće definisati klasu B izvedenu iz klase A?
class B : virtual A {...};class B : protected public A {...};class B : override A {...};class B : 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