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
No answers yet.
Connectez-vous pour laisser une réponse