Una técnica importante para organizar el código es el uso de namespaces.
Dos funciones podrían tener una colisión de nombres, que se puede resolver colocándolas en namespaces distintos.
Los namespaces se pueden anidar, lo que puede ayudar a estructurar bases de código grandes.
Se accede a los namespaces mediante el operador de resolución de scope ::.
El ejemplo siguiente muestra el uso de dos funciones foo distintas.
Se usan juntas anteponiendo sus respectivos namespaces.
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 encargos testamentarios singulares.
En este ejercicio vas a abrir una misteriosa cámara acorazada. Eres el albacea de la herencia y reunirás 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 una sola familia pueda abrir la cámara acorazada, esta 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 cámara acorazada.
Define un espacio de nombres llamado estate_executor.
El código de las siguientes tareas debe definirse 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 del modificador secreto para revelar el número de cuenta secreto.
Define la función assemble_account_number(int secret_modifier), que toma el modificador secreto como argumento y devuelve el número de cuenta reunido como un int.
Para obtener el número correcto, tienes que sumar el bank_number_part de cada una de las tres familias.
Las instrucciones del testamento te piden que sumes 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 único integer.
La función no tiene argumentos y se basa únicamente en la información de los espacios de nombres correspondientes a las familias.
Regístrate en Exercism para aprender y dominar C++ con 19 conceptos100 ejercicios y mentoría humana real, todo gratis.