ОО1/Фебруар 2021 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (Tačne postavke u zadacima 1, 2, 3, 5, 6, 7 i 8 (izvor: `<@443130487989600286>`))
м (+{{rešenja}})
Ред 1: Ред 1:
{{tocright}}
{{tocright}}
* Za pitanja sa više odgovora, tačni odgovori su <span class="solution-example">podebljani i uokvireni</span>.
{{rešenja}}
* Za pitanja za koje se odgovori unose, tačni odgovori su podvučeni i sakriveni: <span class="spoiler-example">ovako</span>.
* Pritisnite na sledeće dugme kako biste ih sakrili ili otkrili: <span class="unhide-spoilers unhide-solutions"></span>


== 1. zadatak ==
== 1. zadatak ==

Верзија на датум 28. јун 2021. у 15:32

  • За питања са више одговора, тачни одговори су подебљани и уоквирени
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
  • Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:

1. zadatak

Koja od navedenih definicija najbolje odgovara apstrakciji kao elementnu objektno orijentisanog stila programiranja?

  1. Odvajanje interfejsa klase od njene implementacije koja se sakriva od korisnika.
  2. Prepoznavanje bitnih svojstava skupova sličnih objekata i opisivanje zajedničkom klasom.
  3. Mogućnost kreiranja apstraktnih klasa i funkcija članica.
  4. 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;
  1. const int*
  2. int*
  3. int
  4. const int* const
  5. const int
  6. int *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?

  1. const X * const
  2. X*
  3. X * const
  4. X
  5. const X *

4. zadatak

Koji od sledećih tvrđenja su tačni za statičke metode klase X:

  1. Nemaju pokazivač this
  2. Imaju pravo pristupa svim članovima X
  3. Imaju javno pravo pristupa nezavisno od sekcije u kojoj se nalaze
  4. Mogu da pristupaju statičkim atributima i funkcijama prostim imenovanjem
  5. 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?

  1. template<typename T>
  2. template<typename T, int N>
  3. template<int N>
  4. template<typename T, typename U>
  5. template<>

8. zadatak

Na koje sve načine je moguće definisati klasu B izvedenu iz klase A?

  1. class B : virtual A {...};
  2. class B : protected public A {...};
  3. class B : override A {...};
  4. class B : A {...};
  5. 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