Wiązanie parametrów - teoria

0

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 ?

1

a gdzie to słyszałeś?

1

Przypadkiem nie chodzi o przekazywanie parametrów przez wartość lub przez referencję?

1

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.

0

Macie rację, po prostu ktoś powiedział mi brednie, chodziło o wartość i referencję.

1

Przy czym warto zaznaczyć od razu, że istnieją dwa sposoby przekazywania parametrów przez referencję:

  • ze słówkiem var - z przekazaniem wartości zmiennej do parametru,
  • ze słówkiem out - bez przekazywania wartości zmiennej.
0

const to nie przez referencję tylko przez stałą w obiektowym pascalu, a out przez wynik, tez w obiektowym

0
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.

0
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);

1 użytkowników online, w tym zalogowanych: 0, gości: 1