Video: Writing 2D Games in C using SDL by Thomas Lively 2024
Aangezien C ++ de waarde van het argument doorgeeft, kunt u niet differentiëren naar constantie. Wat in het volgende wordt doorgegeven aan maximum () zijn de waarden 2. 0 en 0. 0. De functie maximum () kan niet zeggen of deze waarden afkomstig waren van een variabele zoals dArg of een constante zoals 0. 0. < dubbel maximum (dubbele d1, dubbele d2); void otherFunction () {double dArg = 2. 0; double dNonNegative = maximum (dArg, 0. 0);
U
kunt de argumenten van een functie const verklaren. Een dergelijke verklaring betekent dat u de waarde van het argument binnen de functie niet kunt wijzigen. Dit wordt aangetoond in de volgende implementatie van maximum (dubbel, dubbel):
De toewijzing aan d1 en d2 is niet toegestaan, omdat beide zijn geconto-const verklaard en daarom niet kunnen worden gewijzigd.
Wat niet legaal is, is het volgende:
// deze twee functies zijn niet verschillend genoeg om dubbel maximum te onderscheiden (dubbele d1, dubbele d2); dubbel maximum (const dubbele d1, const dubbele d2); void otherFunction () {double dArg = 2. 0; // C ++ weet niet welke van de bovenstaande functies double dNonNegative = maximum (dArg, 0. 0) moet noemen;
Hier kan C ++ geen onderscheid maken tussen beide wanneer u belt.