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 ?
Wiązanie parametrów - teoria
- Rejestracja: dni
- Ostatnio: dni
- Postów: 11
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
a gdzie to słyszałeś?
- Rejestracja: dni
- Ostatnio: dni
Przypadkiem nie chodzi o przekazywanie parametrów przez wartość lub przez referencję?
- Rejestracja: dni
- Ostatnio: dni
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.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 11
Macie rację, po prostu ktoś powiedział mi brednie, chodziło o wartość i referencję.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 11
const to nie przez referencję tylko przez stałą w obiektowym pascalu, a out przez wynik, tez w obiektowym
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1084
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.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Gorlice
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);