26. Operatory, które mogą być tylko niestatycznymi funkcjami klasy, to: (str 73)
A) operatory new lub delete
B) operatory specjalne
C) konwertery
D) operatory ogólne
27. Deklaracje friend class XX użyta w definicji klasy KKK oznacza: (str 67)
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
28. Statyczne (static) funkcje klasy to funkcje: (str 63)
A) które mogą być aktywowane tylko na rzecz obiektów ustalonych
B) które nie aktywują się na rzecz obiektów (str 23)
C) które w wyniku dają wartość stałą
D) których argumentami są obiekty statyczne
29. Hermetyzacja klasy polega na: (str 22)
A) usunięciu zaprzyjaźnień
B) ukryciu metod i zmiennych tej klasy z sekcji publicznej i zabezpieczonej
C) usunięciu z klasy sekcji publicznej
D) ukryciu obiektów tej klasy
30. Przeciążając operator można predefiniować (zmienić): (str 45)
A) priorytet
B) realizowany algorytm
C) liczbę argumentów
D) wiązanie
??(nie a)31. Operatory, które są albo niestatycznymi funkcjami klasy albo mają co najmniej jeden argument typu obiektowego to: (str 73)
A) operatory new lub delete
B) operatory specjalne
C) konwertery
D) operatory ogólne
32. Predefiniowana zmienna this (str 63)
A) występuje tylko w niestatycznych funkcjach klasy
B) występuje we wszystkich funkcjach klasy
C) występuje tylko w statycznych funkcjach klasy
D) występuje tylko w funkcjach zaprzyjaźnionych z klasą
33. Przykładami operatorów specjalnych są: (str 73)
A) jednoargumentowe operatory :: & # hym>
B) operatory = ( ) [ ]
C) dwuargumentowe operatory :: & # hym>
D) operatory sizeof << >>
34. Jeśli operator + jest zdefiniowany jako funkcja klasy, to wyrażenie X + Y należy rozumieć jako: (str 53 i 76)
A) X+operator(Y) ????
B) operator+(X,Y)
C) X.operator+(Y)
D) Y.operator+(X)
35. Dwuargumentowy operator można zdefiniować jako: (str 76)
A) jednoargumentową funkcję klasy lub globalna funkcje zaprzyjaźnioną
B) dwuargumentową funkcję klasy lub jednoargumentową globalną funkcję zaprzyjaźnioną
C) dwuargumentową funkcję klasy lub globalną funkcję zaprzyjaźnioną
D) jednoargumentową funkcję klasy lub dwuargumentową globalną funkcję zaprzyjaźnioną
36. Jednoargumentowy operator można zdefiniować jako: (str 76)
A) bezargumentową funkcję klasy lub globalną funkcję zaprzyjaźnioną,
B) jednoargumentową funkcję klasy lub bezargumentową globalną funkcję zaprzyjaźnioną
C) bezargumentową funkcję klasy lub jednoargumentową globalną funkcję zaprzyjaźnioną
D) jednoargumentową funkcje klasy lub globalną funkcję zaprzyjaźnioną
37. W sekcji publicznej pewnej klasy zapisano deklarację operator double(); Oznacza to że: (str 82)
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
38. Pomiędzy klasą pochodną i jej klasą bazową istnieją standardowe konwersje: (str. 86)
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
39. Dziedziczeniu nie podlegają: (str 84)
A) konstruktory
B) zaprzyjaźnienia
C) destruktory
D) zmienne niestateczne
40. Jeśli klasa bazowa jest upubliczniona, to jej publiczne i zabezpieczone komponenty stają się w klasie pochodnej: (str 85)
A) publiczne
B) zabezpieczone
C) prywatne
D) publiczne jeśli były publiczne, natomiast zabezpieczone jeśli były zabezpieczone
?? (a,d)41. Standardowa konwersja z klasy pochodnej do klasy bazowej w ciągu klas nie istnieje gdy: BŁĄD!!! (str 92)
A) klasa pochodna dziedziczy wiele róż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
42. W konstruktorze klasy pochodnej, zmienne podobiektu bazowego inicjuje się: (str 87)
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
??(jeszcze c)43. Dziedziczenie polega na: (str. 84,87)
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 (operator=)
44. Zdefiniowanie w klasie pochodnej funkcji o takiej samej nazwie jak funkcja w klasie bazowej lecz z innym zestawem argumentów oznacza (str 86)
A) przeciążeniu funkcji klasy bazowej
B) stworzenie ciągu funkcji polimorficznych
C) przesłonięciu funkcji klasy bazowej
D) odniesieniu się funkcji do klasy bazowej
45. Podobiekt klasy dziedziczonej wirtualnie występuje w obiekcie klasy pochodnej (str. 93)
A) tyle razy ile klas bazowych dziedziczy klasa pochodna
B) tyle razy ile klas bazowych dziedziczy tę klasę wirtualną
C) jeden raz, niezależnie ile klas bazowych dziedziczy tą klasę wirtualną
D) występuje samodzielnie poza obiektem w jednym egzemplarzu dla wszystkich obiektów
46. W klasach bazowej i pochodnej zdefiniowano funkcję F1() oraz virtual G2() i tylko G2 jest polimorficzna. W funkcji main zdefiniowano zmienne Pochodna.X, Bazowa *p=&X. Instrukcje p->F1() oraz p->G2() wywołują funkcję: BŁĄD!! (str 98)
A) F1 i G2 z klasy Pochodna
B) F1 z klasy Pochodna, G2 z klasy Bazowa
C) F1 z klasy Bazowa i G2 z klasy Pochodna
D) F1 i G2 z klasy Bazowa
47. Zaznacz prawidłowe stwierdzenie: (str. 98)
A) w konstruktorach i destruktorach funkcje polimorficzne zachowują się jak zwykłe funkcje
B) funkcje polimorficzne nie wolno przedefiniować w dziedziczonych klasach pochodnych
C) funkcji polimorficznych nie wolno przedefiniować w klasach pochodnych
D) destruktory mogą być funkcją polimorficzną choć mają różne nazwy
E) Funkcje polimorficzne - wirtualne to funkcje zadeklarowane ze specyfikatorem virtual oraz wszystkie funkcje tego samego typu - te same nazwy, typy wyników, liczby i typy argumentów - zawarte w dowolnej klasie pochodnej, w ciagu klas pochodnych)
48. Deklaracja w definicji klasy bazowej virtual int Max()=0, oznacza że funkcja Max (str. 101)
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)
49. Klasy abstrakcyjne definiuje się aby: (str. 102)
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
50. Klasa abstrakcyjna to klasa: (str. 101)
A) niezawierająca żadnych funkcji ani zmiennych
B) zawierająca przynajmniej jedną funkcję abstarkcyjną
C) zawierająca tylko funkcje abstrakcyjne
D) zawierająca funkcje ale nie zawierająca zmiennych
No wlasnie... z tego, co wiem, w pytaniu 41 powinno byc D (tylko), w
43 A,B,C, a w 46 C. No i w 47 odpowiedz B jest bez sensu, ktos musial
cos zle przepisac (ale odpowiedzi sa imho dobre). A moze sie myle? Dla
prostoty weryfikacji zacytuje te pytania (zaznaczam * ktore
pytania sa oryginalnie zaznaczone w tym tescie):
41. Standardowa konwersja z klasy pochodnej do klasy bazowej w ciągu klas nie istnieje gdy:
A) klasa pochodna dziedziczy wiele róż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
43. 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 (operator=)
46. W klasach bazowej i pochodnej zdefiniowano funkcję F1() oraz virtual G2() i tylko G2 jest polimorficzna. W funkcji main
zdefiniowano zmienne Pochodna.X, Bazowa *p=&X. Instrukcje p->F1() oraz p->G2() wywołują funkcję:
* A) F1 i G2 z klasy Pochodna
B) F1 z klasy Pochodna, G2 z klasy Bazowa
C) F1 z klasy Bazowa i G2 z klasy Pochodna
D) F1 i G2 z klasy Bazowa
47. Zaznacz prawidłowe stwierdzenie:
* A) w konstruktorach i destruktorach funkcje polimorficzne zachowują się jak zwykłe funkcje
B) funkcje polimorficzne nie wolno przedefiniować w dziedziczonych klasach pochodnych
C) funkcji polimorficznych nie wolno przedefiniować w klasach pochodnych
* D) destruktory mogą być funkcją polimorficzną choć mają różne nazwy
DODATEK:
Które stwierdzenia są prawdziwe: (str 48)
Wywołanie funkcji konstruktora zawsze tworzy obiekt klasy
Tworzeniu obiektu klasy nie zawsze towarzyszy wykonanie się funkcji konstruktora
Aktywując destruktor na rzecz obiektu usuwamy ten obiekt (str 56)
W każdej klasie musi istnieć konstruktor kopiujący (zdefiniowany lub domyślny)
Referencyjnym wynikiem funkcji może być: (str 11)
każda zmienna zdefiniowana w tej funkcji
referencyjny argument tej funkcji
lokalna zmienna statyczna
wynik dowolnego wyrażenia skalarnego
Prywatne komponenty klasy KKK mogą być używane wewnątrz: (str. 23)
Funkcji klasy KKK i funkcji innych klas
Funkcji klasy KKK i funkcji klas pochodnych do klas KKK
Funkcji klasy KKK i funkcji zaprzyjaźnionych z klasa KKK
Funkcji klasy KKK i funkcji main
Wyrażenia new double n oraz New double [n] przydzielaja pamięć kolejno na:
jedna zmienną typu double oraz n zmiennych typu double
jedną zmienną typu double o wartości n oraz n wskaźników na zmienne double
jedną zmienną typu double o wartości n a drugie wyrażenie nie jest poprawne
n zmiennych typu double oraz jedną zmienną typu double pomnożoną przez n
Wyrażenia new double (n) oraz New double *[n] przydzielaja pamięć kolejno na:
Jedną zmienną typu double oraz n zmiennych typu double
Jedną zmienną typu double o wartości n oraz n wskaźników na zmienne typu double
Jedną zmienną typu double o wartości n a drugie wyrażenie nie jest poprawne
N zmiennych typu double oraz jedną zmienną typu double pomnożoną przez n
Wyrażenia new double (n) oraz New double *(n) przydzielaja pamięć kolejno na:
Jedną zmienną typu double oraz n zmiennych typu double
Jedną zmienną typu double o wartości n oraz n wskaźników na zmienne typu double
Jedną zmienną typu double o wartości n a drugie wyrażenie nie jest poprawne
N zmiennych typu double oraz jedną zmienną typu double pomnożoną przez n
Które operatory są operatorami specjalnymi
[] , () , -> , =
Konstruktor kopiujący aktywuje się:
podczas przekazywania obiektów przez wartość (gdy do jakiejś funkcji wysyła się obiekt klasy przez wartość)
gdy funkcja zwraca przez wartość obiekt danej klasy
w momencie tworzenia kopii danej klasy
gdy obiekt przekazywany jest jako argument (podczas przekazywania obiektowego argumentu)
Konstruktor jednoargumentowy
definiuje konwersje z typu swojej klasy do typu swojego argumentu
definiuje konwersje z typu swojego argumentu do typu swojej klasy
może być konstruktorem kopiującym jeśli jego argumentem jest referencja do własnej klasy
może być konstruktorem kopiującym jeśli jego argumentem jest zmienną swojej klasy