Questo è il mio codice (semplificazione di un problema di vita reale):qual è una buona alternativa a questo brutto costrutto, in C++?
class Foo {
public:
void f(const string& s) {
if (s == "lt") {
return lt();
} else if (s == "lte")
return lte();
} else if (s == "gt")
return gt();
} else if (s == "gte")
return gte();
}
}
void lt() { /* skipped */ }
void lte() { /* skipped */ }
void gt() { /* skipped */ }
void gte() { /* skipped */ }
};
Ecco come lo farei in PHP/Python/JavaScript/molte altre lingue (ad esempio in PHP):
class Foo {
function f($s) {
return $this->$s();
}
function lt() { /* skipped */ }
function lte() { /* skipped */ }
function gt() { /* skipped */ }
function gte() { /* skipped */ }
}
Come posso rendere il mio codice C++ elegante come questo esempio PHP? Grazie in anticipo.
cosa succederebbe in PHP se l'argomento $ s è sbagliato? – Arseny
un test può essere aggiunto, ma penso che la domanda non riguardi cosa si può aggiungere per evitare la situazione nel codice PHP – ShinTakezou
Perché non usare un interruttore? –