examin C++ inne pytania 2


1. Publiczne składniki(zmienne) klasy mogą by przetwarzane przez:
a) konstruktor ok
b) prywatne funkcje klasy ok
c) publiczne funkcje klasy ok
d) funkcje nie należące do żadnej klasy
e) funkcje zmiennych klas nie zwiÄ…zane (nie pochodzÄ…ce) z danÄ… klasÄ…

(Należy nie mylić “przetwarzania" z dostÄ™pem, np. przy dziedziczeniu protected, klasa pochodna ma dostÄ™p do skÅ‚adników public i protected z klasy podstawowej, ale przetwarzać może wszystkie, nawet prywatne, jeÅ›li w klasie podstawowej w public lub protected znajduje siÄ™ metoda, która operuje na zmiennych prywatnych)

2) Funkcja wirtualna czysta to:
a) funkcja, które nie zwraca żadnej wartości
b)funkcja niemająca parametrów
c)funkcja mająca parametry domyślne
d) żadna z powyższych ok

(Funkcja czysto wirtualna
funkcja, której nie definiuje się w klasie podstawowej( .... = 0) dla innych klas;
definicji oczekuje się w klasach pochodnych. Kompilator w .NET umożliwia:
virtual void funkcja( ) = 0;
void virtual funkcja( ) = 0;
Obie deklaracje funkcji czysto wirtualnej są uznawane przez kompilator, choć wydaje się, że na początku powinno być słowo 'virtual')

3. Porównywanie stringów operatorami relacji(operatory binarne):
a) Litera A jest mniejsza od B ok
b) zachodzi odwrotna relacja do punktu a)
c) Litera a jest mniejsza od A
c) zachodzi relacja odwrotna do punktu c) ok

(Zgodnie z kodem ASCII: mniejsze “numery"majÄ… duże litery A...Z a “wiÄ™ksze" maÅ‚e litery a...z)

4.Zmienna "this" w C++ jest:
a) wskaźnikiem do obiektu klasy bazowej używanym w obiekcie klasy pochodnej
b) wskaźnikiem do danego obiektu klasy dostępnym dla wszystkich f. składowych ok
c) wskaźnikiem którego można użyć wyłącznie przy xxxxxx(nie wiem co tu było) operatorów
d) zwykłą zmienną def. przez użytkownika, a nie słowem kluczowym języka C++

5.Referencja w C++:
a) nie różni się od wskaźnika w C
b) są identyczne ze wsk. w C, ale zamiast & używamy * i odwrotnie
c) żadne z powyższych ok

(Referencja w C++ jest “przezwiskiem", odniesieniem siÄ™ do zmiennej; trzeba pamiÄ™tać, że nie tylko rozpatrujemy przekazanie zmiennej przez adres w celu jej zmodyfikowania. Istnieje także mniej popularne zastosowanie referencji:
int w = 10;
int & referencja = w;
Teraz zmienna referencja jest odniesiem do w i zawiera adres komórki pamięci w stad tez ma wartosc 10
Różnica między wskaźnikami w C oraz C++:
C: Podając do funkcji argumenty formalne wskaźnikowe przekazuje adresy komórek pamieci, dzięki temu możemy zmieniać zmienne. Chcąc jednak wypisać taką zmienną, otrzymamy adres komórki heksadecymalnie.
Operator & używamy do przypisanie adresu wskaźnikowi lub jako “przezwiska"
C++. Możemy zmodyfikować zmienna podając argument jako wskaźnik lub referencję do obiektu. Wypisując wskaźnik otrzymamy taki sam wynik jak w C, natomiast wypisując referencje zostanie wyświetlona wartość zmiennej. Ważne, że referencje można porównać(porównanie wartości); natomiast porównanie wskaźników wiąże się z porównaniem adresów komórek(tak jak w C))

6. Co to jest inserter?

(Na przykÅ‚adzie strumieni cin i cout: operator inserter strumienii: “ <<", operator extractor strumienii: “>>"; wczytujÄ…c do struminia używamy “cin>>... - extractor", odczytujÄ…c ze strumienia używamy “cout<<... - inserter)


7. W jaki sposób można przekazać obiekt do funkcji
a) tylko przez nazwÄ™ (kopia)
b) tylko przez wskaźnik
c) oba powyższe ok( logicznie, odpowiedz c jest bez sensu, bo oznacza: (Tylko przez nazwe i tylko przez wskaznik...), ale zgaduje, ze chodzi o obie formy nie wykluczajace sie)

(Obiekt można przekazać przez: wskaźnik(szybszy dostęp, można modyfikować), referencję(adres obiektu, można modyfikować), przez wartość( nie można modyfikować, kopia))

8. Do jakiego rodzaju zmiennych klasy bazowej ma dostęp klasa pochodna?

( Odpowiedź nie zależy od trybu dziedziczenia. Ogólnie klasa pochodna ma dostęp do zmiennych typu public i protected -> nie ma dostępu do zmiennych typu private. W zależności od trybu dziedziczenia zmienia się tylko typ zmiennych odziedziczonych( czy przechodzą one do private,public,protected klasy pochodnej) )


9. Ustawienie flagi ios::uppercase sprawia, że:
a) ustawia na wyjście duże litery
b) ustwia na wejściu duże litery
c) e w notacji naukowej zostanie wydrukowane dużą literą ok
d) o w notacji ósemkowej zostanie wydrukowane duą literą !!
e) x w notacij szesnastkowej zostanie wydrukowane dużą literą ok

( Uważam, że odpowiedzi a i b są nieprawidłowe, ponieważ flagę ustawia się dla konkretnego strumienia, np. cin.setf(ios::uppercase)...etc)

10. Operacje powodujÄ…ce wystÄ…pienie wyjÄ…tku :
a) powinny być umieszczone w bloku catch
b) powinny być umieszczone w bloku try ok
c) powinny być umieszczone w bloku exception
d) powinny być umieszczone w bloku throw

(catch
obsługa danego wyjątku; try
blok, w którym należy przechwycić wyjÄ…tek, exception(?) - nie ma takiego sÅ‚owa kluczowego w C++, throw - “wyrzuca", zgÅ‚asza wyjÄ…tek)

11. Klasa ostringstream:

Hierarchia klasy:

ios_base -> ios -> ostream -> ostringstream

Obiekt tej klasy przechowuje wskaźnik do obiektu streambuf, który można zmodyfikować lub operować na nim przez metode rdbuf; w pamięci zapisana jest sekwencja znakowa, która można odczytać, jako zwykły string przez metode str().

Mówiąc inaczej:

Ważne, że jej wyjście nie jest formatowane, jak to było w przypadku ostream, tzn. jeśli wypiszesz, napisz tej klasy przez cout<<, to otrzymasz najprawdopodobniej komórkę w pamięci, gdzie zaczyna się napis. Dlatego musimy użyć funkcji, formatującej str(),zwracającą nam wartość typową string(napisową), którą można już spokojnie wyświetlić.


12. SÅ‚owo kluczowe “typename"
używane jest przede wszystkim we wzorcach; może ono wystÄ™pować zamiennie ze sÅ‚owem kluczowym “class"; ZakÅ‚ada siÄ™, że sÅ‚owa “class" powinno używać siÄ™ we wzorcach klas, a sÅ‚owa “typename" we wzorcach funkcji. Z tego co sprawdziÅ‚em: sÅ‚owo class można używać we wszystkich wzorcach, podobnie jak typename; zależy jednak od wersji kompilatora.

13. Jeśli argumentem funkcji jest obiekt klasy, to:
a) funcja może go zmieniać zawsze
b) funkcja może go zmieniać tylko jeśli argumentem jest wskaźnik do obiektu
c) funkcja może go zmieniać tylko jeśli argumentem jest referencja obiektu
d) żadna odpowiedź nie jest prawidłowa ok
(Funkcja może zmienić obiekt(tak jak jakikowleik typ wbudowany(bo jest to także obiekt)) jeśli przekazany jest on przez referencję lub wskaźnik)

14. Chronione elementy mogą być przetwarzane(protected):
konstruktor, destruktor
metody każdego typu w klasie podstawowej
metody klasy pochodnej(ponieważ takie składniki są dla klas pochodnych niezależnie od dziedziczenia widoczne jako public w klasie podstawowej)
funkcje zaprzyjaźnione z klasą

15. Konstruktor:
a) typowo jest to funcja typu public ok
b) może być wirtualny
c) lista argumentów musi być pusta
d) jeśli konstruktor klasy bazowej ma argumenty to konstruktor klasy pochodnej też musi je mieć
(Przyjęło się, że kontruktor jest publiczną metodą, ponieważ umieszczenie go, np. w składnikach prywatnych, sprawi, że niejako zakazane jest tworzenie takiego obiektu spoza klasy; Mimo prywatnego konstruktora można stworzyć pierwszys obiekt i operować na nim. Jest na to metoda, która chwilowo umknęła mi z głowy)

16. Set i Multiset i Vector:
a) swap działa na wszystkich kolekcjach ok
b) sortowane są według jednej wielkości
c) posortowane domyślnie malejąco
d) posortowane domyślnie rosnąco
e) można decydować o trybie sortowania

( ciÄ…gle siÄ™ zastanawiam)

17. Strumienie obsługi błędów w C++ to : CERR i CLOG(ten może być użyć zbuforowanego wejścia/wyjścia w odróżnieniu do CERR)


Wyszukiwarka

Podobne podstrony:
examin C inne pytania
inne pytania
Inne pytaniay
prawo ustrojowe ue pytania prejudycjalne i inne procedury przed TSUE
Pytania Król immuna poprawa examinu (1)
pytania inne
Religia Pytania o latarniÄ™ mojego serca
Pytania z witamin Siemian
pytania2009cz1 test
PKC pytania na egzamin
2009 pytania testowe
pytania byrdy I termin
patomorfologia pytania egzamin opisowy
PIK PYTANIA
pytania
pytania rynek finansowy egzamin

więcej podobnych podstron