ОО1/К1 2020

Извор: SI Wiki
< ОО1
Датум измене: 5. новембар 2020. у 21:25; аутор: KockaAdmiralac (разговор | доприноси) (Valjda je ovako nešto bilo u sedmom)
Пређи на навигацију Пређи на претрагу
  • За питања са више одговора, тачни одговори су подебљани и уоквирени.
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени: овако.
  • Притисните на следеће дугме како бисте их сакрили или открили:

Г2

1. задатак

Заокружити тачне тврдње у вези са референцама на језику C++:

  1. Могуће је дефинисати референцу на показивач.
  2. Могуће је дефинисати низ референци.
  3. Могуће је дефинисати референцу на референцу.
  4. Могуће је дефинисати показивач на референцу.


2. задатак

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

#include <iostream>
 
int &f(int &x){
  return x++;
}

int main(void) {
  int x = 5;
  std::cout << f(x);
}
  1. 6
  2. 0
  3. Програм се не преводи.
  4. 5

4. задатак

Повезати тврдње у вези са модификаторима метода:

Модификатори
volatile б.

const е.

& г.

&& ф.

  1. Метода се може звати само ако је текући објекат показивач.
  2. Ознака компајлеру да не врши оптимизације.
  3. Ознака компајлеру да врши оптимизације.
  4. Метода је мутатор.
  5. Метода је инспектор.
  6. Метода се може звати само ако је текући објекат двредност.
  7. Метода се може звати само ако је текући објекат лвредност.
  8. Метода се може звати само ако је текући објекат константан.

5. задатак

Заокружити тачне тврдње у вези са померајућим конструктором на језику C++:

  1. Дефинисањем подразумеваног конструктора брише се уграђени премештајући конструктор.
  2. Дефинисањем копирајућег конструктора брише се уграђени премештајући конструктор.
  3. Померајући конструктор мора да има само један параметар.

6. задатак

Заокружити тачне тврдње у вези са функцијама на језику C++:

  1. Могу се дефинисати више функција истог имена ако имају различити број параметара без подразумеваних вредности.
  2. Могу се дефинисати више функција истог имена ако су им различите повратне вредности.
  3. Не могу се дефинисати више функција истог имена, јер компајлер не би могао да их распозна.
  4. Могу се дефинисати више функција истог имена ако имају различите типове параметара.

7. задатак

Шта исписује следећи програм на програмском језику C++:

#include <iostream>
using namespace std;

class L {
    L(const &L l) = delete;
};

class K {
    static int staticId;
    int id = staticId++;
    L l;
public: 
    K() = default;
    K(const K&) {}
    int m(K arg) {
        return arg.id;
    }
};

int K::staticId = 1;
int main()
{
    K a;
    K b;
    K c(a);
    cout << a.m(c);
}
  1. 1
  2. 2
  3. Програм се не преводи
  4. 3
  5. 4

8. задатак

9. задатак

Допунити XXX са линијом тако да је програм исправан:

#include <iostream>

class A {
        int n = 1;
        A(const A& a) = delete;
    public:
        A(A&& a) { };
};

void f(A a) {
    std::cout << a.n;
}

int main(void)
{
    XXX
    return 0;
}
  1. f();
  2. A a; f(a);
  3. f(A());
  4. f(A);

10. задатак

Заокружити тачне тврдње у вези са статичким пољима у класама на језику C++:

  1. У дефиницији класе се могу дефинисати променљива статичка поља.
  2. Досег имена статичког поља је класа.
  3. Статичком пољу с из класе К се приступа користећи израз К.с.