Salve,
mettiamo che ho un metodo di una classe che può essere chiamato con o senza parametri:
in questo caso devo scrivere due funzioni distinte per lo stesso metodo usando l'overloading: una che accetta parametri, l'altra no.codice:classe marameo { public: marameo(); void print(void); void print(std::string); private: std::string szStringa; } void marameo::print(void) { szStringa = "stringa di default"; printf("%s\n", szStringa); } void marameo::print(std::string a) { szStringa = a; printf("%s\n", szStringa); }
Tuttavia le funzioni però fanno la stessa cosa, essendo dello stesso metodo. Ma mi tocca scriverle separate! quindi duplico il codice. Quello che vorrei fare io è che se il metodo è chiamato con dei parametri usi quelli, altrimenti usi dei parametri di default...
ci posso stare a fare due costruttori separati in fondo il codice è poco (solo inizilizzare variabili), ma due funzioni per lo stesso metodo dovrei duplicare il codice e mi risulterebbe moolto inconveniente...spero che C++ offra una soluzione a questo.
grazie



Rispondi quotando