Qual é a diferença entre struct e typedef struct em C++?
Olá a todos! Recentemente comecei a estudar C++ depois de C, e tive uma dúvida sobre a declaração de structs. Em C, eu costumava escrever assim:
```c
typedef struct {
int x;
int y;
} Point;
```
E depois usava `Point` como um tipo normal. Mas quando mudei para C++, vi que muitos escrevem simplesmente:
```cpp
struct Point {
int x;
int y;
};
```
E depois usam `Point` sem `struct`. Isso me confunde. Tentei ambas as opções em C++, e ambas funcionam. Mas qual é a diferença entre elas? É necessário usar `typedef struct` em C++? Ou isso é considerado má prática? Ouvi dizer que em C++ as structs são quase como classes, mas não tenho certeza de como isso afeta a declaração. O `typedef` pode afetar o desempenho ou a forma como o compilador processa o código? Agradeço por uma explicação detalhada com exemplos.
<<>>
Diferença chave: C vs C++
Em C++, a keyword struct cria automaticamente um nome de tipo, então typedef