Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
c○ Prof. Dr. B. Bartning, HS <strong>Emden</strong>/<strong>Leer</strong> Rumpfskript ” Informatik I/II“ (WS/SS 2010/11) 84<br />
• C++ Jedoch manchmal, insbesondere wenn die Variable großen Speicherbedarf beinhaltet,<br />
möchte man zur Laufzeit den Extraspeicher und die Kopierzeit eines CALL BY<br />
VALUE sparen, trotzdem aber sicher sein, dass der aktuelle Parameter nicht geändert<br />
werden kann, auch nicht bei einem ungewollten Programmierfehler in der Funktion.<br />
Dazu bietet sich die konstante Referenz an (7.31b). Dieses wird sehr oft bei Objekten<br />
getan (Kap. 9).<br />
Syntax:<br />
DeklarationKonstanteReferenz [NV] 14/20 const Typ &Variable<br />
Bei konstanter Referenz ist als aktueller Parameter ein Ausdruck, ggf. sogar anderen<br />
Typs, erlaubt (Zwischenspeicherung in temporärer Variable).<br />
(2) Wenn ein Parameter durch die Funktion geändert werden soll, ist folgendes zu tun:<br />
• Anwenden der (nichtkonstanten) Referenzübergabe<br />
• oder einer anderen Möglichkeit (Zeiger), weitere Diskussion siehe (12.42, 12.43).<br />
Bsp s. (7.45).<br />
(7.45) Bsp Beispielprogramm zu Parameterübergabe Wert und Referenz (nichtkonstant und konstant);<br />
in der Vorlesung wird die Speicherbelegung besprochen.<br />
#include // Beispielprogramm D07-45.CPP<br />
using namespace std;<br />
// Funktionsdeklarationen; Definitionen s. unten<br />
void tauschDenkste(int par1, int par2);<br />
void tausch(int &par1, int &par2);<br />
int neuWert(int par1, const int &par2, int &par3);<br />
int main()<br />
{<br />
int i, j, k;<br />
}<br />
// Vertauschen nein und ja:<br />
i=5; j=7;<br />
tauschDenkste(i,j);<br />
cout