IMI INDEKS
NAZWISKO TERMIN WT CZ 1/2
1. Wiadomo, że klasa YYY jest klasą pochodną od klasy XXX. Uzupełnij kod tak aby się
kompilował trzeba napisać klasę YYY oraz zdefiniować odpowiednio operator strumieniowy <<.
Skomentuj swój kod (wyjaśnij DLACZEGO napisałaś/napisałeś go tak a nie inaczej).
class XXX
{
int value;
public:
explicit XXX(int val);
int getValue() const;
};
XXX::XXX(int val) {
value = val;
}
int XXX::getValue() const {
return value;
}
int main()
{
YYY obiekt(7,4);
cout << obiekt << endl; // powinno wypisać na ekranie 7,4
}
2. Wyjaśnij jakie warunki muszą być spełnione by zadziałał mechanizm póznego wiązania. Jaki
będzie wynik działania poniższego programu ?
class KlasaA {
public:
virtual void foo () { cout << "A"; }
void bar () { cout << "B"; }
};
class KlasaB : public KlasaA {
public:
void foo() { cout << "C"; }
};
int main() {
KlasaA a;
KlasaB b;
KlasaA * ptr;
a.foo();
b.foo();
ptr = &b;
ptr->bar();
ptr->foo();
}
IMI INDEKS
NAZWISKO TERMIN WT CZ 2/2
3. Poniższy program kompiluje się, ale po uruchomieniu prawie na pewno zostanie zabity przez
system operacyjny (niebieski ekran, segmentation fault,...). Wyjasnij dlaczego. Dopisz kod tak aby
program był w pełni poprawny. Skomentuj swój kod. Dla ułatwienia zaznaczyłem w komentarzu
instrukcje które mogą spowodować ujawnienie się błędu.
#include
using namespace std;
class Bufor {
int *ptr;
int size;
public:
explicit Bufor(int rozmiar);
~Bufor();
};
Bufor::Bufor(int rozmiar) {
ptr = new int[rozmiar];
size = rozmiar;
}
Bufor::~Bufor() {
delete[] ptr;
}
void foo(Bufor b) {} // ta funkcja nic nie robi
int main() {
Bufor b1(10);
foo(b1); // ERR
Bufor b2( b1 ); // ERR
b2 = b1; // ERR
}
4. W pewnej funkcji została dynamicznie zaalokowana pamięć. W trakcie działania tej funkcji
został zgłoszony wyjątek, ale w tej funkcji nie ma procedury obsługi tego wyjątku. Wyjaśnij co się
stanie po zgłoszeniu wyjątku i zaproponuj rozwiązanie problemu (można dostać dodatkowe punkty
za więcej niż jedno rozwiązanie).
class MyException {};
void foo() {
int * data = new int[10];
// ...
throw MyException();
}
int main() {
try {
foo();
}
catch(const MyException & e) {
//...
}
}
Wyszukiwarka
Podobne podstrony:
kolo 2 WMS zesp przyg
koło Programy Goofy
Kolo Czasu 3 Kamien Lzy tom2
Koło dwumasowe Skoda Octavia
language oop
KOLO 2
kolo I analiza (zad rozw)
kolo mop1
kolo 03 2006
pytania odpowiedzi 1 koło WdTCiM
Mineralogia 2 koło
Regresje Przerwać błędne koło karmy
kolo polecenia a
więcej podobnych podstron