Testy Jerzego Kisielewicza. Nie odpowiadam za ich poprawność. Ucząc się ich podejmujesz ryzyko, lepiej sprawdź wszystko sam(a)
Które stwierdzenia są prawdziwe:
wywołanie funkcji konstruktora zawsze tworzy obiekt jego klasy
tworzenie obiektu klasy nie zawsze towarzyszy wykonanie się funkcji konstruktora
aktywując destruktor na rzecz obiektu klasy usuwa się ten obiekt'
w każdej klasie musi istnieć konstruktor kopiujący
Referencyjnym wynikiem funkcji może być
każda zmienna zdefiniowana w tej funkcji
referencyjny argument tej funkcji
lokalna zmienna statyczna
wynik dowolnego wyrażenia skalarnego
3. Prywatne konstruktory(komponenty) klasy KKK mogą być używane wewnątrz
funkcji klasy KKK i funkcji innych klas
funkcji klasy KKK i funkcji klasy pochodzącej od klasy KKK
funkcji klasy KKK i funkcji zaprzyjaźnionych z klasy KKK
funkcji klasy KKK i funkcji main
4. Wyrażenie new double n oraz new double [n ] przydzielają pamięć kolejno na
jedną zmienną typu double oraz n zmiennych typu double
jedną zmienną typu double o wartościach n oraz n wskaźników na zmienne typu double
jedną zmienną typu double o wartościach n a drugie wyrażenie nie jest poprawne
n zmiennych typu double oraz jedna zmienną typu pomnożoną przez n
5. W klasie bazowej i pochodnej zdefiniowano funkcje f1 i g2 polimorficzną. W funkcji main zdefiniowano zmienną pochodna i bazową, Instrukcje pf1 i pg2 wywołały funkcje:
f1 z klasy bazowej, g2 z klasy pochodna
f1 z klasy pochodna, g2 z klasy bazowa
f1 i g2 z klasy pochodna
f1 i g2 z klasy bazowa
Zaznacz prawdziwe stwierdzenia
destruktory mogą być funkcją polimorficzną(mimo różnych nazw w różnych klasach)
w konstruktorach i destruktorach mogą być dziedziczone, zachowują się jak zwykłe funkcje
funkcji polimorficznych nie wolno przedefiniować w klasach pochodnych
funkcje polimorficzne wirtualne to funkcje zdeklarowane ze specyfikatorem virtual oraz wszystkie funkcje tego samego typu, zawarte w dowolnej klasie pochodnej, w ciągu klas pochodnych.
e) funkcji polimorficznych nie wolno przedefiniować w dziedziczonych klasach pochodnych
Konstruktor kopiujący aktywuje się podczas:
a) przekazywania obiektów przez wartość (gdy do jakieś funkcji wysyła się obiekt klasy przez wartość.
b) gdy funkcja zwraca przez wartość obiekt danej klasy
c) w momencie tworzenia kopii obiektu danej klasy
d) gdy obiekt przekazywany jest jako argument(podczas przekazywania obiektowego argumentu)
8. Konstruktor jednoargumentowy
a) definiuje konwersje z typu swojej klasy do typu swojego argumentu
b) definiuje konwersje z typu swojego argumentu do typu swojej klasy
c) może być konstruktorem kopiującym, jeśli jego argument jest referencją do własnej klasy
d) może być konstruktorem kopiującym jeśli jego argument jest zmienną swojej klasy.
9. Konstruktor kopiujący aktywuje się gdy
a) argument funkcji przekazywany jest przez referencje
b) argument funkcji przekazywany jest przez wartość
c) zawartość obiektu przypisujemy do zmiennej tej samej klasy
d) definiowana zmienna obiektowa jest inicjowana obiektem swojej klasy
10. Operatory które są albo niestatecznymi funkcjami klasy albo maja co najmniej jeden argument typu obiektowego
a) operatory new lub delete
b) konstruktory \/
c) operatory ogólne \/
d) operatory specjalne ?
11. Predefiniowana funkcja this:
a) występuje we wszystkich funkcjach klasy
b) występuje tylko w statycznych funkcjach klasy
c) występuje tylko w zaprzyjaźnionych klasy
d) występuje tylko w niestatecznych funkcjach klasy
12. Statyczne funkcje klasy to funkcje:
a) które mogą być aktywowane tylko na rzecz obiektów wskazanych
b) które w wyniku dają wartość stałą
c) które nie aktywują się na rzecz obiektów
d) których argumenty są obiekty ustalone.
13. Które z funkcji klasy KKK mogą być aktywowane na rzecz obiektu ustlonego
a) const KKK funkcja (const KKK)
b) KKK funkcja (const KKK)
c) KKK funkcja (KKK)const
d) const KKK funkcja (const KKK) const
14. Statyczne zmienne klasy to zmienne
a) których nie można przekazać do funkcji przez referencje
b) których wartość nie może być zmieniona
c) które są zawsze w obiekcie klasy
d) występują tylko w zaprzyjaźnionych klasach
15. Wyprowadzanie danych w hex:
a) cout.self(ios::hex)
b) cout<<hex
c) coutMuself
d) cout(16)
16. Referencyjnym wynikiem może być:
a) każda zmienna zdefiniowana w tej funkcji
b) referencyjny argument tej funkcji
c) lokalna zmienna statyczna
d) wynik dowolnego wyrażenia skalarnego
17. Wyrażenie new double n oraz new double *[n ] przydzielają pamięć kolejno na
jedną zmienną typu double oraz n zmiennych typu double
jedną zmienną typu double o wartościach n oraz n wskaźników na zmienne typu double
jedną zmienną typu double o wartościach n a drugie wyrażenie nie jest poprawne
n zmiennych typu double oraz jedna zmienną typu pomnożoną przez n
18. Wyrażenie new double (n) oraz new double *(n) przydzielają pamięć kolejno na
a) jedną zmienną typu double oraz n zmiennych typu double
b) jedną zmienną typu double o wartościach n oraz n wskaźników na zmienne typu double
c) jedną zmienną typu double o wartościach n a drugie wyrażenie nie jest poprawne
d) n zmiennych typu double oraz jedna zmienną typu pomnożoną przez n
19. Jeśli operator + jest zdefiniowany jako funkcja klasy to wyrażenie X + Y należy rozwarzać:
a) operator(X,Y)
b) X.operator(Y)
c) X.operator+(X)
d) X.operator+(Y)
20. Operatory które mogą być tylko niestatycznymi funkcjami klasy to:
a) operatory new i delete
b) operatory specjalne
c) konwertery
d) operatory ogólne
21. Deklaracja friend class XX użyta w definicji klasy KKK oznacza:
a) zaprzyjaźnienie wszystkich funkcji klasy XX z klasą KKK
b) zaprzyjaźnienie wszystkich funkcji klasy KKK z klasą XX
c) zaprzyjaźnienie wszystkich zmiennych klasy XX z klasą KKK
d) błąd w definicji klasy KKK
Hermetyzacja klasy polega na:
a) usunięciu zaprzyjaźnień
b) ukrycie metod i zmiennych tej klasy z sekcji publicznej i zabezpieczonej
c) usunięciu z klasy sekcji publicznej
d) ukryciu obiektów tej klasy
23. Przeciążając operator można predefiniować (zmienić)
a) priorytet
b) realizowany algorytm
c) liczbę argumentów
d) wiązanie
24. Przykładami operatorów specjalnych są.
a) jednoargumentowe operatory :: & # hum>
b) operatory = () []
c) dwuargumentowe operatory :: & # hum>
d) operatory sizeof << >>>
25. Dwuargumentowy operator można zdefiniować jako:
a) jednoargumentową funkcje klasy lub globalną funkcje zaprzyjaźnioną
b) dwuargumentową funkcje klasy lub jednoargumentową globalna funkcje zaprzyjaźnioną
c) dwuargumentową funkcje klasy lub globalną funkcje zaprzyjaźnioną
d) jednoargumentową funkcje klasy lub dwuargumentową globalna funkcje zaprzyjaźnioną
26. Jedno argumentowy operator można zdefiniować jako:
a) bezargumentową funkcje klasy lub globalną funkcje zaprzyjaźnioną
b) jednoargumentową funkcje klasy lub bezargumentową globalną funkcje zaprzyjaźnioną
c) bezargumentowa funkcję klasy lub jednoargumentową globalną funkcje zaprzyjaźnioną
d) jednoargumentową funkcje klasy lub globalną funkcje zaprzyjaźnioną
27. W sekcji publicznej pewnej klasy zapisano deklarację operator double(); Oznacza to że:
a) popełniono błąd, bo powinno być double operator();
b) w klasie istnieje konwerter do typu double z typu tej klasy
c) w klasie istnieje konwerter z typu double do typu tej klasy
d) nie określono typu wyniku funkcji operatora, zatem domyślnie jest on typu int
28. Pomiędzy klasą pochodną i jej klasą bazową istnieją standardowe konwersje.
a) z typu klasy bazowej do typu klasy pochodnej
b) z typu klasy pochodnej do typu klasy bazowej
c) z typu referencyjnego klasy pochodnej do typu referencyjnego klasy bazowej
d) z typu wskaźnikowego klasy bazowej do typu wskaźnikowego klasy pochodnej
e) z typu wskaźnikowego klasy pochodnej do typu wskaźnikowego klasy bazowej
29. Dziedziczeniu nie podlegają
a) konstruktory
b) zaprzyjaźnienia
c) destruktory
d) zmienne niestateczne
30. Jeśli klasa bazowa jest upubliczniona to jej publiczne i zabezpieczone komponenty staja się w klasie pochodnej:
a) publiczne
b) zabezpieczone
c) prywatne
d) publiczne jeśli były publiczne, natomiast zabezpieczone jeśli były zabezpieczone
31. Standardowa konwersja z klasy pochodnej do klasy bazowej w ciągu klas nie istnieje gdy:
a) klas pochodna dziedziczy wiele rożnych klas bazowych
b) Nie ma takiej sytuacji-konwersja zawsze istnieje ?
c) klasa bazowa jest wirtualna ale dziedziczona jest wielokrotnie
d) klasa bazowa nie jest wirtualna i dziedziczona jest wielokrotnie ?
32. W konstruktorze klasy pochodnej zmienne podobiektu bazowego inicjuje się:
a) wywołując konstruktor klasy bazowej w treści konstruktora klasy pochodnej
b) wywołując na liście inicjacyjnej konstruktor klasy bazowej
c) nadając im wartości bezpośrednio na liście inicjacyjnej
d) przypisując im wartości w treści konstruktora klasy pochodnej
33. Dziedziczenie polega na:
a) definiowaniu klas pochodnych ?
b) przejmowaniu z klasy bazowej danych wraz z algorytmami przetwarzania tych danych
c) wstawieniu obiektu bazowego na początek obiektu pochodnego
d) przejściu z klasy bazowej danych wraz z operatorem przepisania(=)
34. Zdefiniowanie w klasie pochodnej funkcji o takiej samej nazwie jak funkcja w klasie bazowej lecz z innym zestawem argumentów oznacza:
a) przeciążeniu funkcji klasy bazowej
b) stworzenia ciągu funkcji polimorficznych
c) przesłonięciu funkcji klasy bazowej
d) odniesieniu się funkcji do klasy bazowej
35. Podobiekt klasy dziedziczonej wirtualnie występuje w obiekcie klasy pochodnej:
a) tyle razy ile klas bazowych dziedziczy klasa pochodna
b) tyle razy ile klas bazowych dziedziczy klasę wirtualną
c) jeden raz, niezależnie ile klas bazowych dziedziczy ta klasę wirtualną
d) występuje samodzielnie poza obiektem w jednym egzemplarzu dla wszystkich obiektów
36. W klasach bazowej i pochodnej zdefiniowano funkcję f1()oraz wirtual g2() i tylko g2 jest polimorficzne.W funkcji main zdefiniowano zmienne Pochodna.X , Bazowa*p=&X.Instrucje pf1() oraz pg2() wywołuja funkcję.
a) f1 i g2 z klasy pochodna?
b) f1 z klasy pochodna g2 z klasy bazowa
c) f1 z klasy bazowa g2 z pochodna?
d) f1 i g2 z klasy bazowa
37. Deklaracja definicji klasy bazowej virtual int Max () =0 , oznacze ze funkcja Max:
a) daje w wyniku zero
b) daje wynik typu int o domyślnej wartości równej zero
c) nie jest w tej klasie zdefiniowana ??
d) jest w tej klasie czysto wirtualna(abstrakcyjna)
38. Klasy abstrakcyjne definiuje się aby
a) były one klasami bazowymi dla innych klas
b) można było zdefiniować obiekty abstrakcyjne jako obiekty tych klas
c) ograniczyć dalsze tworzenie klas pochodnych
d) dziedziczenie było jednoznaczne.
40. Klasa abstrakcyjna to klasa:
a) nie zawierająca żadnych funkcji ani zmiennych
b) zawierająca przynajmniej jedna funkcję abstrakcyjną
c) zawierająca tylko funkcje abstrakcyjne
d) zawierająca funkcje ale nie zawierająca zmiennych
41 Które z wymienionych znaków są specjalne
a) …
b) …
c) …
d) \n \r \t \b \f \\ \' \” \? \c