1
resposta

[Dúvida] Duvida

O typedef funciona apenas para struct ?

1 resposta

Olá, Rita. Negativo!

O typedef funciona para qualquer tipo que você queira redefinir. Inclusive, você pode usar o typedef para redefinir redefinições que você fez. É uma prática que parece ser comum quando se usa muitas abstrações principalmente com templates. Um exemplo prático que você pode ver, é a biblioteca STL feita pela HP que além de utilizarem o typedef para redefinir tipos que estão dentro do template:

      typedef _Key                                                key_type;
      typedef _Tp                                                 mapped_type;
      typedef std::pair<const _Key, _Tp>        value_type;
      typedef _Compare                                      key_compare;
      typedef _Alloc                                            allocator_type;    

eles também utilizam para diminuir o nome de algumas variáveis que estão sendo utilizadas a partir de outros namespaces:

      typedef typename _Alloc_traits::pointer                         pointer;
      typedef typename _Alloc_traits::const_pointer               const_pointer;
      typedef typename _Alloc_traits::reference                         reference;
      typedef typename _Alloc_traits::const_reference         const_reference;
      typedef typename _Rep_type::iterator                              iterator;
      typedef typename _Rep_type::const_iterator                 const_iterator;
      typedef typename _Rep_type::size_type                            size_type;
      typedef typename _Rep_type::difference_type               difference_type;
      typedef typename _Rep_type::reverse_iterator              reverse_iterator;
      typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator;

Não precisa se preocupar em entender o código acima ou o link da biblioteca. Apenas para ilustrar que você pode usar o typedef da maneira que lhe for mais conveniente. Experimente diversas coisas e conheça os limites de uso através de tentativas e erros mesmo : )

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software