Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Konstante Funktionsargumente | Funktionsargumente Spezifikation
C++ Funktionen
course content

Kursinhalt

C++ Funktionen

C++ Funktionen

1. Einführung
2. Funktionsargumente Spezifikation
3. Spezifikation von Funktionsrückgabewerten
4. Einige Fortgeschrittene Themen

book
Konstante Funktionsargumente

In C++, konstante Argumente in einer Funktion weisen darauf hin, dass die Werte, die der Funktion als Parameter übergeben werden, innerhalb der Funktion nicht verändert werden können. Um das konstante Argument zu deklarieren, müssen wir das const Schlüsselwort vor dem Typ-Spezifizierer des Arguments in der Funktionssignatur verwenden:

Betrachten wir nun den Unterschied zwischen der Verwendung von const bei Übergabe per Wert und bei Zeiger-/Referenzargumenten.

Übergabe von const-Argumenten per Wert

Wenn ein Parameter per Wert übergeben und als const deklariert wird, bedeutet dies, dass eine Kopie des Wertes angefertigt wird, und die Funktion diese Kopie nicht ändern kann.
In diesem Fall dient das const Schlüsselwort als Dokumentation und zeigt anderen Entwicklern an, dass die Funktion den Parameter nicht verändert:

h

example

copy
1234
double calculateSquare(const double number) { return number * number; }

Der const-Qualifier stellt sicher, dass der Parameter number innerhalb der Funktion calculateSquare() nicht modifiziert werden kann, und garantiert so die Unversehrtheit der kopierten Daten.

Übergabe von const-Argumenten per Zeiger/Referenz

Die Verwendung von Konstanten mit Zeigern oder Referenzen gewährleistet die Bewahrung der Originaldaten, im Gegensatz zur Übergabe per Wert. Während die Speicheroptimierung oft die Übergabe von Parametern über Zeiger oder Referenzen erforderlich macht, wird es entscheidend, die Integrität der Originaldaten innerhalb der Funktion zu gewährleisten.

cpp

main

copy
12345678910111213141516171819
#include <iostream> // Function definition double calculateArea(const double* radiusPtr, const double& pi) { // Check if the pointer and reference are not null if (*radiusPtr > 0) return pi * (*radiusPtr) * (*radiusPtr); else return 0; // Invalid radius, return 0 } int main() { double radius = 5.0; double pi = 3.14159; double area = calculateArea(&radius, pi); std::cout << "Area of the circle with radius " << radius << " is: " << area << std::endl; }
Welche der folgenden Funktionssignaturen gibt eine konstante Referenz auf einen Integer-Parameter an?

Welche der folgenden Funktionssignaturen gibt eine konstante Referenz auf einen Integer-Parameter an?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 3
We're sorry to hear that something went wrong. What happened?
some-alt