////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
PISZCIE KOLEJNE PYTANIE Z KOLEJNYM NUMEREM - aby sie zrozumieć w odpowiedziach
no to zaczynamy:
1.Co jest w digramie czynności w UML-u.
2.Jaki jest poprawny konstruktor kopiujący klasy student.
student::copy()
Student student::copy()
student(const Student &s)
3.do czego sluzy destruktor ?
do zniszenia obieku
do uwolnienia zaalokowanej pamieci
4.klasa pochodna dziedziczy private(public) po bazowej,jej skladniki:
5.który diagram UML najbardziej przypomina zwykly algorytm
6.kiedy jest klasa abstrackycjna (chyba)
7.dziedziczenie (bazowa -> pochodna/bazowa -> pochodna:
zwierze -> ssak -> koń
sport -> gra -> koszykówka
student -> osoba -> pracownik
wypiek -> ciasto -> babka
kura -> jajko -> jajecznica
8.stworzenie dynamicznej tablicy klasy
klasa *wsk = new klasa [liczba]
klasa *wsk = new tablica [liczba]
klasa *wsk = new klasa[]
9.kto ma dostęp do skladników public/private klasy bazowej?
metody klasy bazowej
metody klasy pochodnej
funkcje zaprzyjaznione
dostep globalny
10.jak mozna zrobic konwersje z klasy pochodnej do bazowej?
operator konwertujacy
konstruktor ..
11.dwuargumantowa funkcja operatorowa
mozna zastapic dwoma jednoargumentowymi
!
argumenty mozna zamienic stronami
12.jak jest wylapywany wyjatek? (samemu)
13.jesli wyjatek jest niespelniony (czy jakos tak,tez samemu cos trza bylo)
14.static (cos)
jest inicjalizowany globalnie
dla wszystkich obiektow danej klasy ma taka sama wartosc
nie mozna zmienic tej wartosci
15.const (cos)
16.jesli klasa jest zadeklarowana,czy pamiec jest zaalokowana?
prawda/falsz
17.jak zmienic domyslne skladniki klasy w klasie? cos takiego
wywolujac jawnie konstruktor bez arg
wywolujac jawnie konstruktor z arg
costam globalnie chyba
18.class A{
virtual f1() - cout A
f2() - cout C
}
class B : class A {
f1() cout B
f2() cout D
)
a &A
b &B
f1()->a
f2()->a
nie pamietam ,jakies takie cos.co zostanie zwrocone bylo pytanie
19.kombinacje rozne ze wskaznikami ktore trzeba bylo zaznaczyc (1 lub wiecej)
wsk+indeks
wsk.indeks
.
->
*(-||-)
jakich operatorow nie mozna przeladowac
::
,
new
i jescze jakies 2
odp :: i .
co wyswietli program
class A
{
public:
virtual void f1() {cout << "A" ;}
};
class B: public A
void f1() {cout << "B";}
f(A a)
a.f1()
A a;
B b;
f(a);
f(b);
(pomijajac fakt, ze sie nie skompiluje bo funkcja f nie ma typu ) to wyswietli AA
jak nazywa sie przykrywanie (??) zmiennych w klasie
hermetyzacja
+3 inne
cos o to jak diedziczone sa skladniki
nie pamietam jakie byly mozliwosci ale odpowiedzi to:
public -> public
protected -> public
private -> brak dostepu z poziomy klasy pochodnej
(z tego co pamietam to nie bylo takich opcji ; / )
3. do czego sluzy destruktor ?
do zniszenia obieku +
do uwolnienia zaalokowanej pamieci +
kiedy ma chociaz jedna metode nie zapimplementowana (jest sam naglowek metody (deklaracja))
zwierze -> ssak -> koń +
sport -> gra -> koszykówka +
student -> osoba -> pracownik -
wypiek -> ciasto -> babka +
kura -> jajko -> jajecznica -
klasa *wsk = new klasa [liczba] +
klasa *wsk = new tablica [liczba] -
klasa *wsk = new klasa[] -
metody klasy bazowej +
metody klasy pochodnej -
funkcje zaprzyjaznione +
dostep globalny -
operator konwertujacy +
konstruktor .. + (na 90%)
mozna zastapic dwoma jednoargumentowymi - (90%)
argumenty mozna zamienic stronami -
try{
funkcja ktora moze wywolac wyjatek
catch(jaki wyjatek przechwytujemy)
{ pbsluga wyjatku}
to jest dalej przekazywany jak nigdzie nie jest wychwycony to program sie wywala
jest inicjalizowany globalnie +
dla wszystkich obiektow danej klasy ma taka sama wartosc +
nie mozna zmienic tej wartosci -
nie mozna zmienic tej wartosci +
prawda/falsz pamiec jest deklarowana w momecie uruchominia konstruktora
czyli -
+ dobrze/ - źle
To robił mój brat na szybko (4 rok PPT) ale ja nie daje za to głowy
Mam kilka zastrzeżeń co do odpowiedzi ATT, test zdałem na 4,5.
"sport -> gra -> koszykówka +" - nie zgadzam się, nie każda gra jest sportem, to sport jest zawsze grą
"12.jak jest wylapywany wyjatek? (samemu)
{ pbsluga wyjatku}"
ważne jest także słówko "throw"(w bloku try{}) miałem odnośnie niego pytanie, tzn wpisałem je. A brzmiało jakoś tak "Dzieki czemu wyjątek może być złapany?"
"16.jesli klasa jest zadeklarowana,czy pamiec jest zaalokowana?
+ dobrze/ - źle"
Nie zgadzam się, klasa jest tylko deklaracją typu, a pamięć jest raczej alokowana przy tworzeniu obiektu tej klasy.
Z resztą się zgadzam, wyjątkiem jest 10., nie chce mi się nad tym teraz myśleć, idę odpocząć :p
Miałem 2 pytania z UML'a, NIE jestem pewny czy dobrze odpowiedziałem:
1. Który diagram przypomina klasyczny algorytm? (Brałem pod uwagę tylko 3 odpowiedzi,a było 5)
-klas
+czynności
-stanów
2. Co można zobaczyć w diagramie czynności? (Chyba inaczej to brzmiało ale kminicie):
+związki
-agregacje
-przypadki użycia
<były jezscze 3, z czego 2 zaznaczyłem>
Inne pytania (na 100%) dobrze:
3. Która z odpowiedzi umożliwia konwersję:
+ Osoba(const Osoba &o)
- void Osoba (const Osoba &o)
<reszta odpowiedzi była bez sensu>
4. Chodziło o to że przy dziedziczeniu dopisujemy "private" i co się wtedy dzieje z prawami dostępu (banał :]):
+wszystkie -> private
+public -> private
<reszta była źle>
Jak sobie coś przypomnę postaram się dodać :]
Mój kolega, doświadczony informatyk, któremu pokazałem te nasze pytania z forum ma kilka uwag:
(raczej) + smieszne takie....
np
coś w stylu: A(const B& b);
obiekt A przyjmuje w konstruktorze obiekt B. I sam tworzy sie na podstawie obiektu B
hmm. ciezko podac przyklad. czasem sie stosuje tak, ale rzadko
4.do czego sluży destruktor ?
- do zniszczenia obiektu
+ do uwolnienia zaalokowanej pamięci
destruktor sluzy do posprzatania po sobie. np zamkniecia otwieranych socketow, plikow, zniszczania wlasnych obiektow
samo zwalnianie pamieci jest juz robione za destruktorem
5.klasa pochodna dziedziczy private(public) po bazowej, jej składniki:
Wszystkie: private, public, protected
jak dziedziszych private to wtedy zmieniasz widocznosc zmiennych wszystkich na private. czyli jak B dziedziczy private A, i C dziedziczy z B, to C nie widzi zmiennych A
jakbys dziedziczyl public to nic sie nie zmienia
a protected to tylko public zmienia na protected
dziedziczy wszystko tyle ze ze zmienionym dostępem
10.kto ma dostęp do składników private klasy bazowej?
+ metody klasy bazowej
- metody klasy pochodnej
+ funkcje zaprzyjaźnione
- dostęp globalny
10.kto ma dostęp do składników protected klasy bazowej?
+ metody klasy pochodnej
15.static (cos)
+ jest inicjalizowany globalnie
+ dla wszystkich obiektów danej klasy ma taka sama wartość
- nie można zmienić tej wartości
16.const (cos)
- jest inicjalizowany globalnie
- dla wszystkich obiektów danej klasy ma taka sama wartość
+ nie można zmienić tej wartości
15 pytanie o static to tak. jest globalna zmienna. natomiast 16. const nie musi byc static
moze byc cosnt, moze byc static a moze byc const static
samo const zabespiecza tylko ze nie mozesz zmienic wartosci
czyli tylko ostatnia jest prawidlowa
17.const static (cos)
19.class A{
nie pamiętam, jakieś takie coś, co zostanie zwrócone było pytanie
„BC”
21. Jaka funkcja jest wywoływana podczas wystąpienia błędu? (pyt. otwarte)
Wyjatek?
bo podczas bledu to nic nie jest wywolywane. jak zrobisz dzielenie przez 0, wyjdziesz po za zakres tablicy czy inny glupi blad to dostaniesz program wykonal nie dozwolona operacje i nastapilo jego zamkniecie
a z wyjatkiem to nawet nie wiem
z wyjatkiem to poprostu ktorys catch wylapie, a nawet nie wiem czy cos jest wywoływane
23. Zadanie typu:
class A {
...
} // nie jestem pewien tej klamry
class B {
A obiekt // czy coś w tym stylu
Pytanie: czy obiekt utworzony w klasie B będzie obiektem typu A?
jesli dobrze rozumiem pytanie to nie
jesli B zawiera A, a ty stworzysz obiekt klasy B to to jest obiekt klasy B a nie A
gdyby B dziedziczylo z A, to wtedy tak
samochod jest pojazdem
ale samochod nie jest kolem
kołem
24. co wyświetli program
to chyba powinno byc: f(A& a) zamiast f(A a)
wypisze „AB”!!
jest virtual
i masz obiekty a i b
i przekazujesz je do funkcji polimorficznej
ona je obie widzi jako a
ale jeden z tych a to jest b
25. jakich operatorów nie można przeładować
+ .
+ ::
- New
- delete
i jeszcze jakieś 2
odp. :: i .
26. jak nazywa się przykrywanie (??) zmiennych w klasie
EIT_PWR