Deklaracja dziedziczenia z klasy bazowej

use wywołanie_funkcji
(use wywołanie1 wywołanie2 ...)

Deklaracja klasy bazowej. Funkcja w POOL użyta jako opis klasy jest jednocześnie używana jako konstruktor. Analogicznie - deklaracja klasy bazowej jest jednocześnie instrukcją wywołania konstruktora klasy bazowej.
Instrukcja use może być użyta tylko w definicji funkji, bezpośrednio po nagłówku to nazwa_funkcji argumenty. Wielokrotne dziedziczenie może być zadeklarowane z użyciem opcjonalnych argumentów use lub osobne wywołania tej instrukcji dla każdej klasy bazowej. Wywołanie funkcji jest standardowym zapisem, w którym można używać obowiązkowych i domyślnych argumentów funkcji. Można także użyć instrukcji dynamicznego wywołania funkcji call; w tym przypadku dopuszczalne są klasy bazowe o liczbie argumentów konstruktora zgodnej z liczbą argumentów instrukcji call:

to prototyp1
  ;klasa bazowa, konstruktor bez argumentów
end

to prototyp2 :parametr
  ;klasa bazowa, konstruktor z argumentem
end

to model1
  use prototyp2 "stała
  ;klasa potomna, konstruktor bez argumentów
end

to model2 :p1 :p2
  (use prototyp1 prototyp2 :p1)
  ;wielokrotne dziedziczenie, konstruktor z 2 argumentami
end

to model3 :proto
  use call :proto
  ;klasa dziedzicząca dynamicznie, dopuszczalne klasy bazowe
  ;o konstruktorach bez obowiązkowych argumentów
end

Przykład:

to prototyp :parametr
  to fn op :x end
  let "x :parametr
end

to model :p1 :p2
  use prototyp :p1
  to fn op :x + :y end
  let "y :p2
end

"p := (newt $prototyp 2)
"m := (newt $model 2 3)

print fn @ :p
print fn @ :m

Rezultat wykonania:

2
5

Zobacz także:

Dziedziczenie, funkcje wirtualne
Żółw - obiekt
Dynamiczne wywołanie funkcji

Spis treści