Avatar ·

Que sont les types POD en C++ et pourquoi sont-ils nécessaires ?

Bonjour à tous ! J'ai commencé à étudier C++ et je suis tombé sur le terme "type POD". J'ai lu la documentation, mais je ne comprends toujours pas complètement. Apparemment, c'est "Plain Old Data", mais qu'est-ce que cela apporte en pratique ? Supposons que j'écrive une simple structure pour stocker un point : ```cpp struct Point { int x; int y; }; ``` Est-ce un type POD ? Et si j'ajoute un constructeur ? ```cpp struct Point2 { Point2() : x(0), y(0) {} int x; int y; }; ``` Ou si j'ajoute une fonction virtuelle ? ```cpp struct Point3 { virtual void print() {} int x; int y; }; ``` Pourquoi est-ce important ? Où est-ce utilisé ? J'ai entendu dire que les types POD peuvent être copiés via memcpy, mais pas les structures ordinaires. Est-ce vrai ? Et comment vérifier si un type est POD en C++ moderne ? J'aimerais obtenir une explication claire avec des exemples, de préférence du point de vue du standard moderne (C++11/14/17/20). Merci d'avance ! <<>>

Que sont les types POD en C++ ?

POD (Plain Old Data)