Ho pensato a una classe ArgumentManager che funziona in questo modo:
- Un costruttore con argc & argv (o std :: vector) come parametro.
- getCount () = > Restituisce argc.
- getArgLit (argLit) = > Restituisce vero se l'argomento è stato trovato con il letterale.
(ad esempio '-a') - getArgPos (argPos) = > Restituisce argomento con posizione 'argPos'.
- getArgVal (argLit) = > Restituisce l'argomento che segue la corrispondenza di 'argLit'.
(es. '-un thiswillbereded').
Dopo, ho pensato al modo di gestire errori come "L'argomento posizionale non esiste" e ho pensato a una soluzione try-catch che è questa:
ArgumentManager am(argc, argv);
try {
am.getPosArg(2);
} catch (ArgumentManager::notArgException) {
std::cerr << "Error: Please enter at least 2 arguments.";
}
Ovviamente la classe ArgumentManager genererà errori se necessario.
Ora ecco le mie domande:
- È un buon design di classe?
- Come posso migliorarlo?
- Se è troppo brutto, come faresti?
Grazie.