[EDIT] Cette discussion est un fork de Relecture de code d'un jeu RPG afin d'éviter le mélange de débats tous deux intéressants. N'hésitez pas à continuer à répondre aux deux discussions séparément

Mais pourquoi diantre cacher (et non encapsuler parce que c'est une notion qui n'a rien à voir ici) les attributs d'une classe Position ???

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
class Postition {
public:
    Postition( const int x, const int y );
    const int PosX() const { return m_x; }
    const int PosY() const { return m_y; }
private:
    const int m_x;
    const int m_y;
};
Cette classe est absurde... je crois que ça s'appelle la maladie des getters...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
struct Position
{
    int x, y;
};
Ce code est à la fois plus simple, plus concis, plus maniable, et offre plus de possibilités.

Un simple const Position suffit à avoir la même chose que ce que tu fais, sans nécessiter de modification de Position :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
const Position b {3, 3};
Position a {1, 1};
a = b;
b = a;//! interdit par choix du programmeur, s'il fait ceci c'est une erreur d'inatention le compilo va le lui signaler.