ОО1/Фебруар 2021

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

1. задатак

Која од наведених дефиниција најбоље одговара апстракцији као елементну објектно оријентисаног стила програмирања?

  1. Одвајање интерфејса класе од њене имплементације која се сакрива од корисника.
  2. Препознавање битних својстава скупова сличних објеката и описивање заједничком класом.
  3. Могућност креирања апстрактних класа и функција чланица.
  4. Приступачност одређеним члановима класе навођењем права приступа.

2. задатак

Који је тип променљиве i у следећем исечку кода написаном на језику C++?

const int j = 1;
const auto k = j;
auto i = new int + k;
  1. цонст инт*
  2. инт*
  3. инт
  4. цонст инт* цонст
  5. цонст инт
  6. инт *цонст

3. задатак

У класи X је дефинисан метод m.

class X {
public:
	void m(X *x) const {}
};

Ког типа је показивач this у методу m?

  1. цонст X * цонст
  2. X*
  3. X * цонст
  4. X
  5. цонст X *

4. задатак

Који од следећих тврђења су тачни за статичке методе класе X:

  1. Немају показивач this
  2. Имају право приступа свим члановима X
  3. Имају јавно право приступа независно од секције у којој се налазе
  4. Могу да приступају статичким атрибутима и функцијама простим именовањем
  5. Морају се дефинисати ван тела класе

5. задатак

Шта исписује следећи програм на програмском језику C++? (Уколико сматрате да се програм не преводи, унесите НП. Уколико сматрате да долази до грешке при извршавању, унесите 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;
}

Решење: 133

6. задатак

Ког типа је параметар премештајућег оператора доделе за класу X?

Решење: X&&

7. задатак

Који од понуђених префикса опште (неспецијализоване) шаблонске (генреичке[сиц]) функције или класе су исправни?

  1. темплате<тyпенаме Т>
  2. темплате<тyпенаме Т, инт Н>
  3. темплате<инт Н>
  4. темплате<тyпенаме Т, тyпенаме У>
  5. темплате<>

8. задатак

На које све начине је могуће дефинисати класу Б изведену из класе А?

  1. цласс Б : виртуал А {...};
  2. цласс Б : протецтед публиц А {...};
  3. цласс Б : оверриде А {...};
  4. цласс Б : А {...};
  5. цласс Б : публиц А {...};

9. задатак

Шта исписује следећи програм на програмском језику 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;
}

Решење: 12150

10. задатак

Шта исписује следећи програм на програмском језику C++? Занемарити упозорења преводиоца

#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;
}

Решење: 34