ОО1/Питалице
< ОО1
Пређи на навигацију
Пређи на претрагу
Na ovoj stranici skupljeni su razni ispitni primeri koji su se možda pojavili na ispitu ali im se ne zna rok pojavljivanja ili jednostavno nije bilo dovoljno dobro formulisanih pitalica iz tog roka kako bi se odvojili u stranicu roka.
- 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:
1. zadatak
Šta je od navedenog tačno:
- Objekat javno izvedene klase nasleđuje samo implementaciju osnovne klase, a ne i ugovor
- Objekat zaštićene izvedene klase je jedna vrsta objekta osnovne klase u svakoj globalnoj funkciji
- Kod privatnog izvođenja nasleđuje se ugovor osnovne klase
- Javnim izvođenjem samo se uspostavlja relacija sadržaja između objekta izvedene klase i nasleđenog podobjekta osnovne klase
- Ništa od ponuđenog
2. zadatak
Šta ispisuje sledeći kod:
#include <iostream>
using namespace std;
template <typename T> class Klasa {
public:
template <typename U> void m (U u) { cout << "1"; }
void m (int u) {cout << "2"; }
};
template <typename T> class Klasa <T*> {
public:
template <typename U> void m (U u) { cout << "3"; }
void m (int u) {cout << "4"; }
};
int main () {
Klasa <int*>().m<float>(9);
Klasa <int> ().m(9);
Klasa <int> ().m('a');
Klasa <int*>().m<int>(2);
}
Odgovor: 3213
3. zadatak
Šta ispisuje sledeći kod:
#include <iostream>
using namespace std;
class Klasa {};
int main () {
try {
try {
cout << "0";
throw Klasa();
cout << "1";
}
catch (...) { cout << "2"; }
cout << "3";
}
catch (Klasa i) {cout << "4"; }
cout << "5";
return 0;
}
Odgovor: 0235
4. zadatak
Šta važi za apstraktne klase?
- ne mogu se praviti objekti apstraktne klase zato što ona ne može imati destruktor
- natklasa apstraktne klase je obavezno apstraktna klasa
- klasa izvedena iz apstraktne klase mora da redefiniše sve nasleđene apstraktne metode
- ne mogu se stvarati objekti apstraktne klase već samo pokazivači i refence na nju, koji mogu pokazivati (upućivati) na objekte konkretnih izvedenih klasa koje nisu apstraktne
5. zadatak
Šta ispisuje sledeći kod:
#include <iostream>
using namespace std;
void f() noexcept {}
void g() noexcept (!noexcept (f())) {}
void h() noexcept (noexcept (g())) {}
void m() noexcept (noexcept (f()) || noexcept (g())) {}
int main () {
cout << (noexcept (f()) ? 1:0);
cout << (noexcept (g()) ? 1:0);
cout << (noexcept (h()) ? 1:0);
cout << (noexcept (m()) ? 1:0);
return 0;
}
Odgovor: 1001
6. zadatak
Šta ispisuje dati program:
#include <iostream>
using namespace std;
class A {
public:
static int i;
A() { i++; }
};
int A::i = 0;
class B : virtual public A {
public:
B() { i++; }
};
class C : public A {
public:
C() { i++; }
};
class D : public B, public C {
public:
void pisi() { cout << i; }
};
int main () {
D d;
d.pisi();
return 0;
}
Odgovor: 4
7. zadatak
Šta ispisuje sledeći kod:
#include <iostream>
using namespace std;
class A {
public:
virtual void m() {}
};
class B : public A {};
class C : public B {};
int main () {
A *pa = new B();
B *pb = new C();
B *b = dynamic_cast <B*>(pa);
C *c = dynamic_cast <C*> (pa);
C *d = dynamic_cast <C*> (pb);
if (b == nullptr) cout << 'b';
if (c == nullptr) cout << 'c';
if (d == nullptr) cout << 'd';
return 0;
}
- baca se izuzetak bad_cast
- d
- cd
- c
- bcd
8. zadatak
Šta ispisuje sledeći kod:
#include <iostream>
using namespace std;
class A {
public:
A(int i) {
if (i < 5) cout << 'a';
else throw 'b';
}
};
int main() {
int i = 1;
if (noexcept(A(i++))) cout << i;
else cout << 2*i;
return 0;
}
Odgovor: 2
9. zadatak
Zaokružiti ispravne izraze, ako je dat sledeći kod:
template <typename T=int, int k=10>
class Niz { T niz[k]; };
Niz<int*, 20> n1;Niz<int*&, 20> n2;Niz<20> n3;Niz<> n4;Niz<double, 5.5> n5;Niz n6;
Napomena: Odgovor pod f) se prevodi samo od C++17 i novijih standarda.