Video: Writing 2D Games in C using SDL by Thomas Lively 2024
Da C ++ den Wert des Arguments übergibt, können Sie nicht nach const-ness unterscheiden. Im Folgenden werden die Werte 2. 0 und 0 an maximum () übergeben. Die Funktion maximum () kann nicht feststellen, ob diese Werte von einer Variablen wie dArg oder einer Konstanten wie 0. 0 stammen. < doppeltes Maximum (doppeltes d1, doppeltes d2); void otherFunction () {double dArg = 2. 0; doppelt dNonNegativ = maximal (dArg, 0, 0);
Sie
können die Argumente einer Funktion als const deklarieren. Eine solche Deklaration bedeutet, dass Sie den Wert des Arguments nicht innerhalb der Funktion ändern können. Dies wird in der folgenden Implementierung von maximum (double, double) demonstriert:
Die Zuweisung zu d1 und d2 ist nicht zulässig, da beide als const deklariert wurden und daher nicht änderbar sind.
Was nicht zulässig ist, ist Folgendes:
// Diese beiden Funktionen unterscheiden sich nicht so stark, dass ein doppeltes Maximum (double d1, double d2) unterschieden werden kann; doppeltes Maximum (const double d1, const double d2); void otherFunction () {double dArg = 2. 0; // C ++ weiß nicht, welche der obigen Funktionen doppelt aufgerufen werden soll dNonNegative = maximum (dArg, 0. 0);
Hier kann C ++ beim Aufruf nicht unterscheiden.