Paradygmaty programowania/Test 5: Programowanie obiektowe — przegląd

From Studia Informatyczne

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