Un método importante para organizar el código es el uso de espacios de nombres.
Dos funciones podrían tener una colisión de nombres, que se puede resolver poniéndolas en espacios de nombres diferentes.
Los espacios de nombres se pueden anidar, lo que puede ayudar a estructurar grandes bases de código.
Se accede a los espacios de nombres mediante el operador de resolución de ámbito ::.
El siguiente ejemplo muestra el uso de dos funciones foo diferentes.
Se usan juntas anteponiendo sus respectivos espacios de nombres.
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()};
Trabajas para un prestigioso bufete de abogados especializado en gestionar solicitudes de testamentos poco comunes.
En este ejercicio vas a abrir una bóveda misteriosa. Eres el albacea de la herencia y vas a reunir los códigos secretos que tres familias han guardado durante mucho tiempo para obtener un número de cuenta y el código correspondiente.
Para evitar que alguna familia abra la bóveda por su cuenta, solo se puede abrir combinando sus conocimientos con un modificador secreto que conoces por la última voluntad.
Tienes tres tareas, todas relacionadas con ayudar a las familias a abrir la bóveda.
Define un espacio de nombres llamado estate_executor.
El código de las siguientes tareas debe estar definido en el cuerpo del espacio de nombres estate_executor.
namespace some_name {
// The space between the curly brackets
// is called body of the namespace.
}
Este es tu gran momento. Solo tú tienes la clave modificadora secreta para revelar el número de cuenta secreto.
Define la función assemble_account_number(int secret_modifier) que recibe el modificador secreto como argumento y devuelve el número de cuenta ensamblado como un int.
Para obtener el número correcto, debes sumar la bank_number_part de cada una de las tres familias.
Las instrucciones del testamento te piden que sumes primero todos los fragmentos azules y luego todos los rojos. El código resultante se obtiene multiplicando ambas sumas.
Define la función assemble_code() que devuelve el código resultante combinando los fragmentos de las tres familias en un solo integer.
La función no tiene argumentos y se basa únicamente en la información de los espacios de nombres correspondientes de las familias.
Regístrate en Exercism para aprender y dominar C++ con 19 conceptos100 ejercicios y mentoría humana real, todo gratis.