Um método importante para organizar o código é o uso de namespaces.
Duas funções podem ter uma colisão de nomes, o que pode ser resolvido colocando-as em namespaces diferentes.
Os namespaces podem ser aninhados, o que pode ajudar a estruturar bases de código grandes.
O acesso aos namespaces é feito pelo operador de resolução de escopo ::.
O exemplo abaixo mostra o uso de duas funções foo diferentes.
Elas são usadas juntas ao prefixar seus 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()};
Você trabalha em um escritório de advocacia de prestígio, especializado em lidar com pedidos de testamento singulares.
Neste exercício, você vai abrir um cofre misterioso. Você é o executor do espólio e vai montar os códigos secretos guardados há muito tempo por três famílias para obter um número de conta e o código correspondente.
Para impedir que qualquer família abra o cofre sozinha, ele só pode ser aberto combinando o conhecimento delas com um modificador secreto que você conhece do testamento.
Você tem três tarefas, todas relacionadas a ajudar as famílias a abrir o cofre.
Defina um namespace chamado estate_executor.
O código das próximas tarefas deve ser definido no corpo do namespace estate_executor.
namespace some_name {
// The space between the curly brackets
// is called body of the namespace.
}
Este é o seu grande momento. Só você tem a chave modificadora secreta para revelar o número secreto da conta.
Defina a função assemble_account_number(int secret_modifier), que recebe o modificador secreto como argumento e retorna o número de conta montado como um int.
Para obter o número correto, você precisa somar o bank_number_part de cada uma das três famílias.
As instruções no testamento pedem que você some todos os fragmentos azuis e depois todos os vermelhos. O código resultante é obtido multiplicando as duas somas.
Defina a função assemble_code(), que retorna o código resultante combinando os fragmentos das três famílias em um único integer.
A função não tem nenhum argumento e depende apenas das informações nos namespaces relevantes das famílias.
Crie sua conta no Exercism para aprender e dominar C++ com 19 conceitos100 exercícios e mentoria humana de verdade, tudo de graça.