Leere Übergabe
-
Hallo
#include<iostream> #include<string> using namespace std; // Funktionsprototyp 2. Parameter mit Vorgabewert: void PreisAnzeige(double Preis, const string Waehrung = "Euro"); // Hauptprogramm int main() { double a = 12.35; // zwei Aufrufe mit unterschiedlicher Parameterzahl : PreisAnzeige(a); // Default-Parameter wird eingesetzt PreisAnzeige(50.00, "Dollar"); /* Anstatt der 50.00 würde ich gerne nichts übergeben*/ } // Funktionsimplementation void PreisAnzeige(double Preis, const string Waehrung) { cout << Preis << ' ' << Waehrung << endl; }
Ich habe hier eine Funktion in der ich beim zweiten Aufruf den ersten Aktualparameter nicht mitgeben möchte. Beim ersten Aufruf kann ich ja den zweiten Parameter weglassen, doch wie mache ich das beim ersten Parameter
Ich habe probiert
'' (char) ' ' (char Leer) "" (string) " " (string Leer) und einfach mal ein Leerzeichen, immer durch Komma abgetrennt.
Über den Sinn möchte ich hier nicht streiten, ich weiss nur nicht wie ich leere Parameter mitgeben kann. Wenn ich zb. den dritten (in anderem Code) oder so Parameter auch leerlassen will bekomme ich immer Fehlermeldungen.Thx for Help
-----------------------
DevC++ 4.9.9.0 beta mit MinGW 3.3.1
-
Was soll die Funktion PreisAnzeige denn tun, wenn Preis "leer" ist (abgesehen davon, dass ein double nicht "leer" sein kann).
-
geht nicht.
kannst immer nur hinen defaultparameter machen, also
foo(int a,int b=3,int c=5)
und nicht vorne
foo(int a=1,int b,int c=5)
.
also sobald ein defaultparameter da ist können alle folgenden auch nur defaultparameter sein.
und kannst beim aufruf keine lücken lassen.
also
foo(11,,13) geht in c++ nicht.
kannst immer nur die letzten parameter weglassen.
also foo(11,12,13) oder foo(11,12) oder foo(11) oder gar foo(), wenn alles defaulrparameter sind.
-
Du könntest die Funktion überladen.
void PreisAnzeige(const string Waehrung) { PreisAnzeigen(42, Waehrung); }
-
Na dann kann ich ja lange testen.
Danke für die Antworten.
Das mit dem Überladen habe ich sowieso noch nicht so ganz verstanden, muß ich mir noch mal durchlesen. Das mit den Defaultparametern weiß ich ja jetzt.
In diesem SinneCiao