Une méthode importante d'organisation du code est l'utilisation d'espaces de noms.
Deux fonctions peuvent entrer en collision de noms, ce qui peut se résoudre en les plaçant dans des espaces de noms différents.
Les espaces de noms peuvent être imbriqués, ce qui peut aider à structurer de grandes bases de code.
L'accès aux espaces de noms se fait via l'opérateur de résolution de portée ::.
L'exemple ci-dessous montre l'utilisation de deux fonctions foo différentes.
Elles sont utilisées ensemble en les préfixant par leur espace de noms respectif.
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()};
Tu travailles pour un cabinet d'avocats prestigieux spécialisé dans le traitement de demandes testamentaires uniques.
Dans cet exercice, tu vas ouvrir un coffre mystérieux. Tu es l'exécuteur testamentaire et tu vas assembler les codes secrets, gardés depuis longtemps, de trois familles pour obtenir un numéro de compte et le code correspondant.
Pour empêcher une famille d'ouvrir le coffre seule, celui-ci ne peut être ouvert qu'en combinant leurs connaissances avec un modificateur secret que tu connais d'après le testament.
Tu as trois tâches, toutes liées à l'aide apportée aux familles pour ouvrir le coffre.
Définis un espace de noms appelé estate_executor.
Le code des tâches suivantes doit être défini dans le corps de l'espace de noms estate_executor.
namespace some_name {
// The space between the curly brackets
// is called body of the namespace.
}
C'est ton grand moment. Toi seul détiens la clé modificatrice secrète qui permet de révéler le numéro de compte secret.
Définis la fonction assemble_account_number(int secret_modifier) qui prend le modificateur secret en argument et renvoie le numéro de compte assemblé sous forme d'int.
Pour obtenir le bon numéro, tu dois additionner le bank_number_part de chacune des trois familles.
Les instructions du testament te demandent d'additionner d'abord tous les fragments bleus, puis tous les fragments rouges. Le code résultant s'obtient en multipliant les deux sommes.
Définis la fonction assemble_code() qui renvoie le code résultant en combinant les fragments des trois familles en un seul integer.
La fonction ne prend aucun argument et s'appuie uniquement sur les informations contenues dans les espaces de noms correspondants des familles.
Inscris-toi sur Exercism pour apprendre et maîtriser C++ avec 19 concepts100 exercices, et un vrai mentorat humain, le tout gratuitement.