Formale Parameter

Die in Funktion übertragenden Parameter sind lokal. Sichtbereich ist Funktionsblock.  Formale Parameter muessen sich durch Namen von Aussenparametern und lokalenVariablen unterscheiden, bestimmt innerhalb der Funktion. Im Funktionsblock können formalen Parametern bestimmte Werte zugeordnet werden. Wenn der formale Parameter mit dem Modifikator const erklärt wird, kann sein Wert innerhalb der Funktion nicht verändert werden.

Beispiel:

void func(const int & x[], double y, bool z)
  {
   if(y>0.0 && !z)
      Print(x[0]);
   ...
  }

Formale Parameter können von Konstante initialisiert werde. In diesem Fall ist initialisierende Wert ein Default-Wert. Parameter, die dem initialisierten Parameter folgen, muessen auch initialisiert werden.

Beispiel:

void func(int x, double y = 0.0, bool z = true)
  {
   ...
  }

Beim Aufruf solcher Funktion können initialisierte Parameter ausgelassen werden. Statt ihnen werden Default-Werte eingesetzt.

Beispiel:

func(1230.5);

 

Parameter einfacher Typen werden nach der Bedeutung übertragen, d.h. Änderungen der entsprechenden lokalen Variable dieses Typs innerhalb aufgerufener Funktion nicht in aufrufender Fuktion spiegeln wird. Felder jeder Typen und Daten des Typs Strukturen werden immer mit Link übertragen. Wenn es notwendig ist, veränderung des Feldes oder Strukturinhalt zu verbieten, muessen Parameter dieser Typen mit Schluesselwort const erklärt werden.

Es ist moeglich, Parameter einfacher Typen durch Referenz zu übertragen. In diesem Fall ist Modifikation solcher Parameter entsprechende Variablen in aufgerufener Funktion beeinflusst, die durch Referenz übertragen wurden. Für Andeutung, dass der Parameter durch Referenz übertragen wird, muss nach dem Datentyp Modifikator & gestellt werden.

Beispiel:

void func(int& x, double& y, double & z[])
  {
   double calculated_tp;
   ...
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(i==ArraySize(z))       break;
      if(OrderSelect(i)==falsebreak;
      z[i]=OrderOpenPrice();
     }
   x=i;
   y=calculated_tp;
  }

Parameter die durch Refeernz übertragen werden,  können nicht mit Default-Werten initialisiert werden.

In Funktion können nicht mehr als 64 Paramerter übertragen werden.

Sehen Sie auch

Input Variablen, Datentypen, Inkapsulation und Erweiterungsfaehigkeit der Typen, Initialisierung der Variablen, Sichtbereich und Lebensdauer der Variablen, Erzeugung und Entfernung der Objekte