Kann ich eine Funktion überladen, die entweder einen Referenz- oder Variablennamen verwendet?Problem mit der Weitergabe durch Referenz
Zum Beispiel, wenn ich versuche, dies zu tun:
void function(double a);
void function(double &a);
ich den Aufrufer dieser Funktion zu tun in der Lage sein möchte:
double a = 2.5;
function(a); // should call function(double &a)
function(2.3); // should call function(double a)
Ich möchte Pass-by- schreiben Referenzfunktionen für eine bessere Speichernutzung und eine mögliche Manipulation der Variablen außerhalb des Bereichs, aber ohne eine neue Variable erstellen zu müssen, damit ich die Funktion aufrufen kann.
Ist das möglich?
Prost
erstellen. Ich denke, das ist generell möglich, obwohl in Ihrem Beispiel beide 'function (double a)' aufrufen, da a ist ein Int und kann nicht als ein Verweis auf ein Double genommen werden. – falstro
Entschuldigung, das bedeutet, dass ein Doppelgänger ist. Korrigiert in Frage –
Was meinst du mit "mögliche Manipulation der Variablen außerhalb des Geltungsbereichs", und wie würde das funktionieren mit 'Funktion (2.3)' – Roddy