Constructeur dans la mise en œuvre et d'en-tête

Le constructeur doit, à ma connaissance, être définis dans le fichier d'implémentation, mais j'ai seulement été en mesure de trouver des exemples avec la classe à l'intérieur d'un fichier principal au lieu de diviser en un .h et .fichier cpp

Tous j'ai besoin de savoir c'est si mon code est séparé d'une manière acceptable..

Entité.h:

    using namespace std;

class cEntity {
private:
    /*-----------------------------
    ----------Init Methods---------
    -----------------------------*/
    int *X, *Y;
    int *Height, *Width;

public:
    /*-----------------------------
    ----------Constructor----------
    -----------------------------*/
    cEntity (int,int, int, int);

    /*-----------------------------
    ----------Destructor-----------
    -----------------------------*/
    ~cEntity ();

    /*-----------------------------
    ----------Set Methods----------
    -----------------------------*/

    /*Set X,Y Methods*/
    void setX(int x){*X=x;};
    void setY(int y){*Y=y;};
    void setXY(int x, int y){*X=x; *Y=y;};

    /*Set Height, Width Methods*/
    void setHeight(int x){*Height=x;};
    void setWidth(int x){*Width=x;};
    void setDimensions(int x, int y){*Height=x; *Width=y;};

    /*-----------------------------
    ----------Get Methods----------
    -----------------------------*/

    /*Get X,Y Methods*/
    int getX(){return *X;};
    int getY(){return *Y;};

    /*Get Height, Width Methods*/
    int getHeight(){return *Height;};
    int getWidth(){return *Width;};
};

et Entity.cpp:

#include "Entity.h"


cEntity::cEntity (int x, int y, int height, int width) {
   X,Y,Height,Width = new int;
  *X = x;
  *Y = y;
  *Height = height;
  *Width = width;
}

cEntity::~cEntity () {
  delete X, Y, Height, Width;
}

Je tiens également à dire merci à tous pour avoir été si utile, surtout sur ma première question!

Je suggère à la recherche en boost.shared_ptr / boost.scoped_ptr. Ils gèrent la suppression de la destruction et de votre risque de fuites de mémoire est plus faible. Aussi, faire le destructeur virtual sauf si vous avez une raison pour ne pas le faire.
Je suggère à la recherche dans le non-types de pointeur.
delete X, Y, Height, Width; ce n'est pas ce que vous pensez que cela fonctionne.
aussi seule la Largeur sera attribué...
Bien, je suppose que vous voulez dire que j'avais besoin d'un autre "supprimer" par variable? Et je vais lire sur la bibliothèque boost et le mot clé virtual.

OriginalL'auteur Nick Savage | 2011-11-11