Avatar ·

Was sind POD-Typen in C++ und wozu braucht man sie?

Hallo zusammen! Ich habe angefangen, C++ zu lernen und bin auf den Begriff "POD-Typ" gestoßen. Ich habe die Dokumentation gelesen, verstehe es aber immer noch nicht ganz. Es bedeutet wohl "Plain Old Data", aber was bringt das in der Praxis?\n\nAngenommen, ich schreibe eine einfache Struktur zum Speichern eines Punktes:\n\n```cpp\nstruct Point {\n int x;\n int y;\n};\n```\n\nIst das ein POD-Typ? Und wenn ich einen Konstruktor hinzufüge?\n\n```cpp\nstruct Point2 {\n Point2() : x(0), y(0) {}\n int x;\n int y;\n};\n```\n\nOder wenn ich eine virtuelle Funktion hinzufüge?\n\n```cpp\nstruct Point3 {\n virtual void print() {}\n int x;\n int y;\n};\n```\n\nWarum ist das wichtig? Wo wird das verwendet? Ich habe gehört, dass POD-Typen mit memcpy kopiert werden können, normale Strukturen aber nicht. Stimmt das? Und wie kann man in modernem C++ prüfen, ob ein Typ ein POD ist?\n\nIch würde gerne eine verstä