Hi.
Dein Beschreibung bringt gar nichts. Zeig konkreten Code und die dazugehörigen Fehlermeldungen.
Gruß
also so sieht mein Code für den Aufruf mit der Funktion Param aus:
Header:
C++:
void abc(CString var1, Param var2= Param(0), Param var3= Param(0), Param var4= Param(0), Param var5= Param(0), Param var6= Param(0), Param var7= Param(0));
C++:
void 123::abc(CString var1, Param var2, Param var3, Param var4, Param var5, Param var6, Param var7;
C++:
abc(var1,var2,"Hallo",var3);
C++:
abc(var1,var2,var3,var4,var5,var6,var7);
Code:
C++:
CString Param::format() const {
CString res;
switch (character) {
case Param::t_int:
res.Format("\t%i", i);
return res;
case Param::t_float:
res.Format("\t%f", f);
return res;
case Param::t_CString:
return ('\t' + str);
case Param::t_char:
return ('\t' + str);
default:
throw std::logic_error("unknown type value");
}
}
class Param
{
public:
enum Type { t_int, t_float,t_CString };
private:
Type character;
union {int i;
float f;
};
CString str;
public:
Param(const CString& s) : character(t_CString), str(s) { }
Param(int i) : character(t_int), i(i) { }
Param(float f): character(t_float), f(f) { }
CString format() const;
};
Beispiel:
C++:
abc(var1,var2,"Hallo",var3);
cannot convert parameter 3 from 'const char' to 'Param'
Besser?
Gruss