indkapslede argumenter
Hejjeg har prøvet at indkapsle x antal argumenter af vilkårlige typer i en ikke template baseret klasse og tænkte på at gøre noget alà:
class Args {
private:
void* lpArgs[MAXARGS];
public:
enum {
MAXARGS = 255
}
int getNumArgs();
void* get(int index);
};
void function(const Args& args) {
int i = args.getNumArgs();
//hvis vi siger der er 1 args men idx 0 som er type long
long* lpFirst = (long*)args.get(0);
cout << "arg 1 = " << (long)*lpFirst << endl;
}
Problemet ved denne løsning er bare at man så skal gætte på hvilke type de forskellige argumenter er især da jeg gerne vil have det sådan at man kan bruge klasser som man selv har defineret.
Er der nogen som har en bedre løsning ?