Avatar ·

Pourquoi utiliser un pointeur plutôt que l'objet lui-même en C++ ?

Bonjour à tous ! Je suis un développeur C++ débutant et je rencontre souvent des situations où je ne comprends pas pourquoi on utilise des pointeurs au lieu d'objets ordinaires. Par exemple, j'écris une classe pour gérer un personnage de jeu : ```cpp class Monster { public: Monster(const std::string& name) : name(name) {} void attack() { /* ... */ } private: std::string name; }; void processMonster(Monster m) { // Je passe l'objet par valeur m.attack(); } int main() { Monster goblin("Goblin"); processMonster(goblin); // Copie ! Et si le monstre est lourd ? return 0; } ``` Je vois que beaucoup de programmeurs expérimentés écrivent ainsi : ```cpp void processMonster(Monster* m) { m->attack(); } ``` Ou même créent des objets via `new` : ```cpp Monster* boss = new Monster("Boss"); ``` J'ai plusieurs questions : 1. Pourquoi a-t-on besoin de pointeurs si on peut simplement travailler avec des objets ? 2. Quand est-il préférable d'utiliser un pointeur plutôt qu'une référence ? 3. Quelle est la différence entre `M