Desenvolva um template que troque o valor de duas variáveis.
Passo 1
Vamos nessa!
Essa é uma questão simples e direta: construir um template para efetuar uma função de troca.
Lembre-se, uma função de troca deve receber o endereço de memória de duas variáveis, e então trocar os conteúdos existentes em cada endereço.
Então vamos começar com o cabeçalho da questão:
Passo 2
Vamos criar o template da função. Para criar um template a gente usa estrura:
Vamos usar o nome para o nosso tipo, e o nome da função será . A função não precisa de retorno, então o tipo será . Como parâmetros vamos receber duas variáveis por referência, para ter acesso ao endereço de memória.
Importante: os dois parâmetros que vamos receber devem usar o mesmo tipo genérico ! Pois se as variáveis forem de tipos diferentes não vai ser possível executar a troca de valores, pois será necessário efetuar conversões, o que resulta em perda de dados!
Agora vamos desenvolver o algoritmo da função.
Primeiro vamos declarar uma variável temporária que vai segurar o valor atual de .
Depois, sobrescrevemos o valor atual de com o valor de .
E pra finalizar, sobrescrevemos com o valor antigo que está guardado na variável temporária.
Detalhe, como os valores de e foram passados por referência, automaticamente as alterações realizadas dentro da função, serão refletidas nas variáveis que estão fora da função!
Passo 3
Show de bola! Agora é só executar a função!
Vamos declarar duas variáveis e com os valores e . E pra deixar bem legal, vamos imprimir o conteúdo dessas variáveis para o usuário.
Em seguida, vamos aplicar a função troca:
E imprimimos o resultado final:
E o resultado é:
Legal né! Lembrando que isso é um template. Então podemos usar variáveis de qualquer tipo e vamos obter um resultado semelhante!