katalogu bez przedrostka Konstruktor tworzy obiekty przez zainicjowanie struktury danych i przydzielenie klasie oznaczenia.
Oto konstruktor klasy wielomianowej polynom, dostępny w pliku: @polynom/polynom.m. function p = polynom(a)
% POLYNOM Konstruktor klasy wielomianowej.
% p = POLYNOM (v) tworzy obiekt wielomianowy za pomocą wektora v, % zawierającego współczynniki malejących potęg x. if nargin == 0 P • c = [ ] ;
p = class(p, 'polynom'); elseif isa(a,'polynom') p = a; else
p - c = a ( : ) . ' ; p = class(p, 'polynom');
end
Istnieje możliwość wywołania konstruktora bez żadnych argumentów. W takim wypadku, konstruktor powinien stworzyć szablon obiektu, zwykle zawierający puste pola. Istnieje także możliwość, że konstruktor zostanie wywołany z argumentem wejściowym, już znajdującym się wewnątrz danej klasy. W takim przypadku, konstruktor zwykle zwraca argumenty wejściowe. Funkcja isa sprawdza wszystko na wypadek takiej sytuacji. Jeśli argument wejściowy istnieje i nie jest to polynom, zostaje on przekształcony do postaci poziomego wektora i przypisany do pola ,c wyniku. Ostatecznie, zostaje użyta funkcja class, która przydziela wynikowi oznaczenie, które identyfikuje go jako polynom.
Przykładem zastosowania konstruktora polynom jest wyrażenie
p = polynom([l 0 -2 -5])
Tworzy ono wielomian o określonych współczynnikach. Efekt wyjściowy tego przykładu, tak samo jak inne działania na wielomianach, omówiony jest w dalszych podrozdziałach.
Ogólnie rzecz biorąc, funkcja konstruktora powinna stosować się do następujących zasad:
- jeśli nie ma argumentów, należy zwrócić obiekt w postaci szablonu,
- jeśli argument już występuje w klasie, należy go zw rócić.
- argumenty (wejściowe) przekształcane są do pożądanej postaci,
- przydzielane są różne pola wewnątrz struktury,
- w celu przydzielenia odpowiedniego oznaczenia używana jest funkcja class.
108