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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Wkm (dyskusja | edycje)
Wkm (dyskusja | edycje)
 
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>
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