Avatar ·

Warum sollte man einen Pointer anstelle des Objekts selbst in C++ verwenden?

Hallo zusammen! Ich bin ein Anfänger in C++ und stoße oft auf Situationen, in denen ich nicht verstehe, warum im Code Pointer anstelle von normalen Objekten verwendet werden. Zum Beispiel schreibe ich eine Klasse zur Verwaltung eines Spielcharakters:\n\n```cpp\nclass Monster {\npublic:\n Monster(const std::string& name) : name(name) {}\n void attack() { /* ... */ }\nprivate:\n std::string name;\n};\n\nvoid processMonster(Monster m) { // Ich übergebe das Objekt by value\n m.attack();\n}\n\nint main() {\n Monster goblin("Goblin");\n processMonster(goblin); // Kopie! Was, wenn der Monster schwer ist?\n return 0;\n}\n```\n\nIch sehe, dass viele erfahrene Programmierer so schreiben:\n\n```cpp\nvoid processMonster(Monster* m) {\n m->attack();\n}\n```\n\nOder sie erstellen Objekte sogar mit `new`:\n\n```cpp\nMonster* boss = new Monster("Bos