Encapsulation

Résolu
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 - 6 oct. 2004 à 15:05
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 - 7 oct. 2004 à 17:56
Salut,

Je voudrais créer une classe qui encapsule des structures et des constantes protégées ou privées

Pour pouvoir compiler, j'ai définie les constantes et les structures dans le fichier .h avant la définit de la classe.

Pour les constantes (statique), je peux les déclarer dans les membres protégés de la classe mais pas leurs donner une valeur initialie.

Si quelqu'un a juste un exemple de déclaration ou une autre alternative pour arriver au même résultat

Merci

Nico

6 réponses

leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
7 oct. 2004 à 13:17
class A
{
private:
struct B {toutes tes def de ta struct, si ya des fonctions membres, a implementer ds ton cpp};
}
3
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
6 oct. 2004 à 19:27
les statiques doivent etre initialisées ds un .cpp je crois, elles en peuvent pas etre initilisées dans un .h, mais doivent etre déclarées dans le .h (du moins il me semble, je verifie ca, et si j'ai dis une connerie je reposterais)
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
6 oct. 2004 à 19:34
bon donc je t'ai pas dis de conneries. voila un exemple tout bete:

.h:
namespace nsSdD
{
class CTeteLinkSimple
{
  public:
     static CTeteLinkSimple * GetTete (void) throw ();
};
}

.cpp:
{
#include "CTeteLinkSimple.h"

nsSdD::CTeteLinkSimple * nsSdD::CTeteLinkSimple::m_Tete = 0;
}
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
6 oct. 2004 à 19:36
erf me suis planté, je t'ai mis la declaration de laccesseur et pas de la variable, je te met le code correct pr le .h:

[code]
namespace nsSdD
{
class CTeteLinkSimple
{
private:
static CTeteLinkSimple * m_Tete;};
}
[\code]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
7 oct. 2004 à 12:29
Heu... J'ai oublié de dire que je suis débutant et que je travail avec VC++6

Mais t'as réponse m'as orienté donc j'ai réussi pour une constante statique

dans le .h
class XCmcStruct
  {
  protected:
    static const unsigned int CONST_TEST; 
  }


dans le .cpp
#include "XCmcStruct.h"
const unsigned int XCmcStruct::CONST_TEST = 2; 


Pour la constante, c'est OK

Maintenant je voudrais que les structs définie dans le .h de ma classe ne soit pas visible en dehors de cette classe

C'est possible ?

En java on a la possiblité de créer des classes internes privées mais je préfère utiliser des structures car je n'aurais que des propriété à stocker dans ces classes

Merci et @+

Nico
0
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
7 oct. 2004 à 17:56
Merci

Nico
0
Rejoignez-nous