Poszukuję informacji na temat sposobów wiązania parametrów procedur w języku programowania Pascal, niestety google nie zwraca żadnych ciekawych informacji na ten temat. Coś słyszałem że są wczesne i późne.
Ktoś wie coś na ten temat i może pomóc ? Albo zna jakieś źródła na temat przedstawionego zagadnienia ?
a gdzie to słyszałeś?
Przypadkiem nie chodzi o przekazywanie parametrów przez wartość lub przez referencję?
Nie spotkałem się nigdy z takim określeniem - zwłaszcza w stosunku do procedur/funkcji. Może chodzi o to czy funkcja jest zahardcode'owana w programie podczas kompilacji (wczesne wiązanie) albo np. poprzez wybranie odpowiedniej funkcji podczas działania programu np. wskaźnik na funkcje (późne wiązanie).
Jeśli nie ograniczamy się do procedur/funkcji a np. do metod to metoda nadpisująca wirtualną może być uznana jako późne wiązanie czyli polimorfizm bo na etapie kompilacji nie musimy wiedzieć na jaką klasę zostanie rzutowany obiekt.
Macie rację, po prostu ktoś powiedział mi brednie, chodziło o wartość i referencję.
const to nie przez referencję tylko przez stałą w obiektowym pascalu, a out przez wynik, tez w obiektowym
normalizacja napisał(a):
Macie rację, po prostu ktoś powiedział mi brednie, chodziło o wartość i referencję.
Niezupełnie; binding dotyczy programowania COM (i nie mylić z portem tylko z Component Object Model) i typem Variant
.
Tam rozróżniamy coś takiego jak wczesne i późne wiązanie (early
i late
binding
), ale to nie ma nic wspólnego z przekazywaniem wartości parametru do procedury/funkcji/metody.
HELP napisał:
Constant parameters may be passed to the function by value or by reference, depending on the specific compiler used. To force the compiler to pass a constant parameter by reference, you can use the [Ref] decorator with the const keyword.
The following example shows how you can specify the [Ref] decorator either before or after the const keyword:
function FunctionName(const [Ref] parameter1: Class1Name; [Ref] const parameter2: Class2Name);