ОО1/К1 2020 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (One button to rule them all)
м (Valjda je ovako nešto bilo u sedmom)
Ред 6: Ред 6:
== G2 ==
== G2 ==
=== 1. zadatak ===
=== 1. zadatak ===
Zaokružiti tačne tvrdnje vezane za reference na jeziku C++:
Zaokružiti tačne tvrdnje u vezi sa referencama na jeziku C++:
<div class="abc-list">
<div class="abc-list">
# <span class="solution">Moguće je definisati referencu na pokazivač.</span>
# <span class="solution">Moguće je definisati referencu na pokazivač.</span>
Ред 37: Ред 37:


=== 4. zadatak ===
=== 4. zadatak ===
Povezati tvrdnje vezane za modifikatore metoda:
Povezati tvrdnje u vezi sa modifikatorima metoda:
{| class="wikitable"
{| class="wikitable"
|+ Modifikatori
|+ Modifikatori
Ред 61: Ред 61:


=== 5. zadatak ===
=== 5. zadatak ===
Zaokružiti tačne tvrdnje vezane za pomerajući konstuktor na jeziku C++:
Zaokružiti tačne tvrdnje u vezi sa pomerajućim konstruktorom na jeziku C++:
<div class="abc-list">
<div class="abc-list">
# Definisanjem podrazumevanog konstruktora briše se ugrađeni premeštajući konstruktor.
# Definisanjem podrazumevanog konstruktora briše se ugrađeni premeštajući konstruktor.
Ред 69: Ред 69:


=== 6. zadatak ===
=== 6. zadatak ===
Zaokružiti tačne tvrdnje vezane za funkcije na jeziku C++:
Zaokružiti tačne tvrdnje u vezi sa funkcijama na jeziku C++:
<div class="abc-list">
<div class="abc-list">
# <span class="solution">Mogu se definisati više funkcija istog imena ako imaju različiti broj parametara bez podrazumevanih vrednosti. </span>
# <span class="solution">Mogu se definisati više funkcija istog imena ako imaju različiti broj parametara bez podrazumevanih vrednosti. </span>
Ред 76: Ред 76:
# <span class="solution">Mogu se definisati više funkcija istog imena ako imaju različite tipove parametara. </span>
# <span class="solution">Mogu se definisati više funkcija istog imena ako imaju različite tipove parametara. </span>
</div>
</div>
=== 7. zadatak ===
Šta ispisuje sledeći program na programskom jeziku C++:
<syntaxhighlight lang="cpp">
#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);
}
</syntaxhighlight>
<div class="abc-list">
# 1
# 2
# <span class="solution">Program se ne prevodi</span>
# 3
# 4
</div>
=== 8. zadatak ===


=== 9. zadatak ===
=== 9. zadatak ===
Ред 107: Ред 148:


=== 10. zadatak ===
=== 10. zadatak ===
Zaokružiti tačne tvrdnje vezane za statička polja u klasama na jeziku C++:
Zaokružiti tačne tvrdnje u vezi sa statičkim poljima u klasama na jeziku C++:
<div class="abc-list">
<div class="abc-list">
# U definiciji klase se mogu definisati promenljiva statička polja.
# U definiciji klase se mogu definisati promenljiva statička polja.

Верзија на датум 5. новембар 2020. у 21:25

  • 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:

G2

1. zadatak

Zaokružiti tačne tvrdnje u vezi sa referencama na jeziku C++:

  1. Moguće je definisati referencu na pokazivač.
  2. Moguće je definisati niz referenci.
  3. Moguće je definisati referencu na referencu.
  4. Moguće je definisati pokazivač na referencu.


2. zadatak

Šta ispisuje sledeći program na jeziku C++?

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

int main(void) {
  int x = 5;
  std::cout << f(x);
}
  1. 6
  2. 0
  3. Program se ne prevodi.
  4. 5

4. zadatak

Povezati tvrdnje u vezi sa modifikatorima metoda:

Modifikatori
volatile b.

const e.

& g.

&& f.

  1. Metoda se može zvati samo ako je tekući objekat pokazivač.
  2. Oznaka kompajleru da ne vrši optimizacije.
  3. Oznaka kompajleru da vrši optimizacije.
  4. Metoda je mutator.
  5. Metoda je inspektor.
  6. Metoda se može zvati samo ako je tekući objekat dvrednost.
  7. Metoda se može zvati samo ako je tekući objekat lvrednost.
  8. Metoda se može zvati samo ako je tekući objekat konstantan.

5. zadatak

Zaokružiti tačne tvrdnje u vezi sa pomerajućim konstruktorom na jeziku C++:

  1. Definisanjem podrazumevanog konstruktora briše se ugrađeni premeštajući konstruktor.
  2. Definisanjem kopirajućeg konstruktora briše se ugrađeni premeštajući konstruktor.
  3. Pomerajući konstruktor mora da ima samo jedan parametar.

6. zadatak

Zaokružiti tačne tvrdnje u vezi sa funkcijama na jeziku C++:

  1. Mogu se definisati više funkcija istog imena ako imaju različiti broj parametara bez podrazumevanih vrednosti.
  2. Mogu se definisati više funkcija istog imena ako su im različite povratne vrednosti.
  3. Ne mogu se definisati više funkcija istog imena, jer kompajler ne bi mogao da ih raspozna.
  4. Mogu se definisati više funkcija istog imena ako imaju različite tipove parametara.

7. zadatak

Šta ispisuje sledeći program na programskom jeziku 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. Program se ne prevodi
  4. 3
  5. 4

8. zadatak

9. zadatak

Dopuniti XXX sa linijom tako da je program ispravan:

#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. zadatak

Zaokružiti tačne tvrdnje u vezi sa statičkim poljima u klasama na jeziku C++:

  1. U definiciji klase se mogu definisati promenljiva statička polja.
  2. Doseg imena statičkog polja je klasa.
  3. Statičkom polju s iz klase K se pristupa koristeći izraz K.s.