Avatar ·

Quelle est la différence entre struct et typedef struct en C++ ?

Bonjour ! Je suis débutant en C++ et je viens du C. En C, j'utilisais souvent `typedef struct` pour ne pas avoir à écrire le mot-clé `struct` à chaque déclaration de variable. Par exemple : ```c // Code C typedef struct { int x; int y; } Point; Point p; // fonctionne sans 'struct' ``` Maintenant, j'apprends le C++ et je vois que beaucoup écrivent simplement : ```cpp struct Point { int x; int y; }; Point p; // fonctionne aussi ! ``` Ce qui me trouble : en C++, faut-il utiliser `typedef struct` ou peut-on se contenter de `struct` ? Quelle est la différence entre les deux ? Y a-t-il des situations où `typedef struct` est encore utile ? Ou est-ce simplement un vestige du C ? J'ai essayé les deux options dans Visual Studio 2022, et les deux se compilent. Mais j'aimerais comprendre quelle option est considérée comme correcte et pourquoi. Merci d'avance pour l'explication ! <<>>

Différence principale : C++ crée automatiquement un typedef pour les structures

En C++, le mot-clé struct (tout comme class) crée automatiquement un type qui peut être utilisé directement, sans avoir besoin de `typedef`. En C, `typedef struct` était nécessaire pour éviter de répéter `struct`, mais en C++, c'est redondant. Cependant, `typedef struct` reste valide en C++ pour la compatibilité avec le code C. Il n'y a pas de situation où il est strictement nécessaire en C++, sauf si vous travaillez avec du code mixte C/C++ ou si vous voulez masquer un nom de type existant (ce qui est déconseillé). La pratique recommandée en C++ est d'utiliser simplement `struct` sans `typedef`.