Ho una valutazione da dare ai miei studenti.
Riguarda C ++ e i puntatori di funzioni.
La loro abilità è al centro: è il primo anno di una scuola di programmazione dopo la laurea.
Per darti qualcosa di preciso, ecco un esempio di una soluzione di uno degli 3 esercizi che dovevano fare in 30 minuti (la domanda era: " ecco una versione di un codice che potrebbe essere scritto con i puntatori di funzione, scrivi la stessa cosa ma con i puntatori di funzione "):
typedef void (*fcPtr) (istream &);
fcPtr ArrayFct [] = { Delete , Insert, Swap, Move };
void HandleCmd (const string && Cmd)
{
string AvalaibleCommands ("DISM");
string::size_type Pos;
istringstream Flux (Cmd);
char CodeOp;
Flux >> CodeOp;
Pos = AvalaibleCommands.find (toupper (CodeOp));
if (Pos != string::npos) {
ArrayFct [Pos](Flux);
}
}
Qualche idea su dove potrei trovare ispirazione?
Alcuni studenti hanno capito i principi, anche se è molto difficile per loro scrivere codice C ++. Li conosco, so che sono intelligenti e sono abbastanza sicuro che dovrebbero essere ottimi project manager. Quindi, scrivere codice C ++ non è che importante dopo tutto. La comprensione è la parte più importante (IMHO).
Mi chiedo se sia possibile rompere le abitudini e dare metà delle domande sul principio, o meglio ancora, dare qualche esempio in altro linguaggio e chiedere loro perché è meglio usare i puntatori di funzione invece della programmazione classica (di solito un grande switch case
).
Qualche idea su dove potrei apparire? Trova qualche ispirazione?