Un metodo importante per organizzare il codice è l'uso dei namespace.
Due funzioni potrebbero avere un conflitto di nomi: si può risolvere mettendole in namespace diversi.
Gli namespace possono essere annidati, il che può aiutare a strutturare grandi basi di codice.
L'accesso agli namespace avviene tramite l'operatore di risoluzione dello scope ::.
L'esempio qui sotto mostra l'uso di due diverse funzioni foo.
Vengono usate insieme anteponendo i rispettivi namespace.
namespace my_ns {
int foo() {
return 44;
}
namespace my_inner_ns {
int baz() {
return 90;
}
}
}
namespace my_other_ns {
int foo() {
return -2;
}
}
int myresult{my_ns::foo() + my_other_ns::foo() * my_ns::my_inner_ns::baz()};
Lavori per un prestigioso studio legale specializzato nella gestione di richieste testamentarie fuori dal comune.
In questo esercizio aprirai una misteriosa cassaforte. Sei l'esecutore testamentario e dovrai mettere insieme i codici segreti custoditi a lungo da tre famiglie per ottenere un numero di conto e il codice corrispondente.
Per impedire che una sola famiglia apra la cassaforte, questa può essere aperta solo combinando le loro conoscenze con un modificatore segreto che conosci dal testamento.
Hai tre compiti, tutti legati allo scopo di aiutare le famiglie ad aprire la cassaforte.
Definisci un namespace chiamato estate_executor.
Il codice dei compiti successivi va definito nel corpo del namespace estate_executor.
namespace some_name {
// The space between the curly brackets
// is called body of the namespace.
}
Questo è il tuo grande momento. Solo tu possiedi la chiave modificatrice segreta in grado di rivelare il numero di conto segreto.
Definisci la funzione assemble_account_number(int secret_modifier), che prende il modificatore segreto come argomento e restituisce il numero di conto assemblato come int.
Per ottenere il numero corretto, devi sommare la bank_number_part di ciascuna delle tre famiglie.
Le istruzioni del testamento ti chiedono di sommare prima tutti i frammenti blu e poi tutti quelli rossi. Il codice risultante si ottiene moltiplicando entrambe le somme.
Definisci la funzione assemble_code(), che restituisce il codice risultante combinando i frammenti delle tre famiglie in un unico integer.
La funzione non ha argomenti e si basa esclusivamente sulle informazioni contenute nei namespace pertinenti delle famiglie.
Iscriviti a Exercism per imparare e padroneggiare C++ con 19 concetti100 esercizi e il mentoring di persone reali, tutto gratis.