Paradygmaty programowania/Test 5: Programowanie obiektowe — przegląd: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Rogoda (dyskusja | edycje)
Nie podano opisu zmian
 
Wkm (dyskusja | edycje)
 
(Nie pokazano 1 pośredniej wersji utworzonej przez tego samego użytkownika)
Linia 20: Linia 20:
<quiz type="exclusive">
<quiz type="exclusive">
Rozstrzyganie odwołań do bytów o takiej samej nazwie mających definicje w dwóch klasach bazowych odbywa się w C++ za pomocą:
Rozstrzyganie odwołań do bytów o takiej samej nazwie mających definicje w dwóch klasach bazowych odbywa się w C++ za pomocą:
<rightoption reply="Dobrze">operatora \:\: (dwa dwukropki)</rightoption>
<rightoption reply="Dobrze">operatora :: (dwa dwukropki)</rightoption>
<wrongoption reply="Źle">operatora . (kropka)</wrongoption>
<wrongoption reply="Źle">operatora . (kropka)</wrongoption>
<wrongoption reply="Źle">tego nie da się zrobić</wrongoption>
<wrongoption reply="Źle">tego nie da się zrobić</wrongoption>
Linia 38: Linia 38:
wywołań z metodami, jest:
wywołań z metodami, jest:
<wrongoption reply="Źle">C++</wrongoption>
<wrongoption reply="Źle">C++</wrongoption>
<wrongoption reply="Źle">C\#</wrongoption>
<wrongoption reply="Źle">C#</wrongoption>
<wrongoption reply="Źle">Java</wrongoption>
<wrongoption reply="Źle">Java</wrongoption>
<rightoption reply="Dobrze">Smalltalk</rightoption>
<rightoption reply="Dobrze">Smalltalk</rightoption>
Linia 44: Linia 44:


<quiz type="exclusive">
<quiz type="exclusive">
Językiem, w któym klasa może być samoistna (tzn. nie mieć nadlasy), jest:
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>
<wrongoption reply="Źle">Java</wrongoption>
<wrongoption reply="Źle">Java</wrongoption>
<wrongoption reply="Źle">Smalltalk</wrongoption>
<wrongoption reply="Źle">Smalltalk</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>
Linia 71: Linia 71:
pozwalające na dziedziczenie występują w:
pozwalające na dziedziczenie występują w:
<wrongoption reply="Źle">C++</wrongoption>
<wrongoption reply="Źle">C++</wrongoption>
<rightoption reply="Dobrze">C\#</rightoption>
<rightoption reply="Dobrze">C#</rightoption>
<wrongoption reply="Źle">Javie</wrongoption>
<wrongoption reply="Źle">Javie</wrongoption>
<wrongoption reply="Źle">we wszystkich wymienionych tu językach</wrongoption>
<wrongoption reply="Źle">we wszystkich wymienionych tu językach</wrongoption>

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