freeCodeCamp/guide/portuguese/cplusplus/the-auto-feature/index.md

2.9 KiB
Raw Blame History

title localeTitle
The Auto Feature O recurso automático

O recurso automático

auto é um recurso do C ++ 11 que permite ao compilador inferir o tipo de dados para você em uma definição. Isso pode economizar bastante digitação, especialmente com tipos complicados.

Sem auto :

double x = 10.425; 
 double y = x * x; 

Com auto :

double x = 10.425; 
 auto y = x * x; 

Embora pareça trivial, torna-se incrivelmente útil quando os tipos de dados começam a ficar complicados. Por exemplo, suponha que você queira armazenar um vector de funcionários e esteja interessado apenas em seu nome e idade. Uma maneira de armazenar o nome e a idade pode ser um pair com uma string e um unsigned int . Isso é declarado como std::vector<std::pair<std::string, unsigned int>> employees . Agora, suponha que você queira acessar o último funcionário adicionado:

std::vector<std::pair<std::string, unsigned int>> employees; 
 
 // without auto, you have to write: 
 std::pair<std::string, unsigned int>> last_employee = employees.back(); 
 
 // with auto, you just have to write: 
 auto last_employee = employees.back(); 

Uma vez que o compilador determina o tipo do lado direito do = ele substitui o auto por esse tipo.

Nas versões modernas de C ++ (desde C ++ 14), auto também pode ser usado em uma declaração de função como o tipo de retorno. O compilador inferirá então o tipo de retorno da declaração de retorno dentro da função. Seguindo o exemplo com funcionários:

std::vector<std::pair<std::string, unsigned int>> employees; 
 auto get_last_employee() { 
    return employees.back(); // Compiler knows the return type from this line. 
 } 

O compilador saberá da linha com a instrução de retorno que o tipo de retorno da função deve ser std::vector<std::pair<std::string, unsigned int>> .

Embora bastante técnica, a página de autopresença descreve muitas outras utilizações de auto e os detalhes de quando pode e não pode ser usado.

auto antes do C ++ 11

Em alguns livros antigos contendo código muito antigo, a palavra auto chave auto é usada de maneira muito diferente.

Esse auto particular era uma palavra-chave emprestada de C e provavelmente era a palavra-chave menos usada de todos os tempos.

Em C ++, todas as variáveis têm duração automática , ou seja, são definidas até você sair da função em que estão definidas.

Por exemplo:

`` `cpp

incluir

int main () { int a; a = 1; // faz sentido, como foi definido na mesma função

    return 0; 

} a = 2; // não faz sentido, já que não está definido aqui `` `

Este é um dado em C ++, e auto especificou que a variável deve ter uma duração automática , daí a falta de uso.

Leitura adicional: