Paradygmaty programowania/Test 5: Programowanie obiektowe — przegląd: Różnice pomiędzy wersjami
m →Test 5 |
m →Test 5 |
||
Linia 44: | Linia 44: | ||
<quiz type="exclusive"> | <quiz type="exclusive"> | ||
Językiem, w któym klasa może być samoistna (tzn. nie mieć | Językiem, w któym klasa może być samoistna (tzn. nie mieć nadklasy), jest: | ||
<rightoption reply="Dobrze">C++</rightoption> | <rightoption reply="Dobrze">C++</rightoption> | ||
<wrongoption reply="Źle">C#</wrongoption> | <wrongoption reply="Źle">C#</wrongoption> | ||
Linia 62: | Linia 62: | ||
Który nagłówek poprawnie deklaruje w C++ metodę abstrakcyjną? | Który nagłówek poprawnie deklaruje w C++ metodę abstrakcyjną? | ||
<wrongoption reply="Źle">virtual void p();</wrongoption> | <wrongoption reply="Źle">virtual void p();</wrongoption> | ||
<rightoption reply="Dobrze">virtual void p() =0;</rightoption> | <rightoption reply="Dobrze">virtual void p()=0;</rightoption> | ||
<wrongoption reply="Źle">void p() =0;</wrongoption> | <wrongoption reply="Źle">void p()=0;</wrongoption> | ||
<wrongoption reply="Źle">abstract void p();</wrongoption> | <wrongoption reply="Źle">abstract void p();</wrongoption> | ||
</quiz> | </quiz> |
Aktualna wersja na dzień 20:33, 22 wrz 2006
Test 5
Której cechy język obiektowy nie musi posiadać?
abstrakcyjne typy danych
dynamiczne wiązanie wywołań metod z metodami
dziedziczenie
podprogramy rodzajowe
Jakie ograniczenie na przedefiniowywanie metod trzeba narzucić w języku silnie typowanym?
przedefiniowana metoda musi być bezparametrowa
przedefiniowana metoda musi być typu void
przedefiniowana metoda musi zachować taki sam protokół
nie trzeba narzucać żadnych ograniczeń
Rozstrzyganie odwołań do bytów o takiej samej nazwie mających definicje w dwóch klasach bazowych odbywa się w C++ za pomocą:
operatora :: (dwa dwukropki)
operatora . (kropka)
tego nie da się zrobić
dziedziczenie wielokrotne nie jest w C++ dozwolone
W języku C++ obiekty zaalokowane na stosie dealokowane są:
niejawnie
za pomocą delete
za pomocą free
w C++ nie ma takich obiektów
Językiem, w którym stosowane jest zawsze dynamiczne wiązanie wywołań z metodami, jest:
C++
C#
Java
Smalltalk
Językiem, w któym klasa może być samoistna (tzn. nie mieć nadklasy), jest:
C++
C#
Java
Smalltalk
W języku C++ metody, które mają być wiązane dynamicznie, deklaruje się za pomocą:
operatora -> (strzałka)
słowa abstract
słowa dynamic
słowa virtual
Który nagłówek poprawnie deklaruje w C++ metodę abstrakcyjną?
virtual void p();
virtual void p()=0;
void p()=0;
abstract void p();
Klasy "lekkie", deklarowane jako struct, alokowane na stosie i nie pozwalające na dziedziczenie występują w:
C++
C#
Javie
we wszystkich wymienionych tu językach
Który element nie występuje w JavaScripcie?
klasy
obiekty złożone z par (nazwa własności, wartość)
operator new
zmienne