begin process at 2012 05 30 01:57:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Problème avec une classe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec une classe

mardi 3 janvier 2006 à 17:26:43 | Problème avec une classe

Freeskieur

Hello,

Je connais assez bien les classes mais là j'ai une spécialité et je capte pas comment il faut faire pour que ca passe.
Ca foire sur la ligne ou il y a property avec le message suivant : [C++ Erreur] CValues.h(21): E2290 ] manquant pour array property

Je précise que c'est un exercice et qu'en principe la classe est juste. Qu'est ce que je dois faire pour que ca tourne ?
Dernière précision, je veux pas qu'on me resolve l'exercice, la donnée est juste là pour bien voir l'ensemble.
Je veux juste savoir pourquoi la compilation de la classe telle qu'écrite ci-dessous ne passe pas.

Merci d'avance pour votre aide.

La donnée de l'exercice :

Il s'agit d'écrire une classe gérant une liste de valeurs associées à une clé alphabétique.En plus de l'accès aux valeurs, le but de cette classe est de pouvoir multiplier toutes lesvaleurs qu'elle contient en une seule opération (opérateurs: *).Nous attendons l'interface publique minimum suivante; les parties protégées et privées sont laissées à votre guise:Il est également nécessaire d'écrire un programme très simple qui utilise chaque méthode de la classe.

La classe :

 

class CValues {

public:

//! Default constructor

CValues();

//! Destructor

virtual ~CValues();

//! Set or get a value using its associated key

__property double Value[AnsiString key]={read=XXXX;write=XXXX};

//! Multiply all currently stored values by the same factor

void operator*(double factor);

}

mardi 3 janvier 2006 à 17:57:09 | Re : Problème avec une classe

Joky

Membre Club
il manque un point virgule à la fin de ta classe

if(!Meilleur("Joky")) return ERREUR;<

mardi 3 janvier 2006 à 18:45:52 | Re : Problème avec une classe

fredcl

Bonjour,

si mes souvenirs sont bons sur la ligne

__property double Value[AnsiString key]={read=XXXX;write=XXXX};

le XXXX est sensé être un pointeur vers une fonction qui lit la valeur pour Value (read) et qui écrit la valeur pour Value (write)
hors XXXX n'est pas une fonction membre de ta classe, de plus il semblerais logique que ces fontions soient différentes.

Il faudrait un truc genre :

public:

// ... ici le reste des fonctions membres publiques

__property double Value[AnsiString key]={read=GetValue;write=SetValue};

protected:

void __fastcall SetValue(AnsiString index, double value);
double __fastcall GetValue(AnsiString index);

// ... ici le reste du code de la classe

Cordialement

Fred Cailleau-Lepetit ( [ Lien ])

mercredi 4 janvier 2006 à 14:03:51 | Re : Problème avec une classe

Freeskieur

Merci a vous deux.

Pour le point virgule je l'avais déjà rajouté mais comme j'ai collé la donnée il n'y paraissait pas.

Ca marche toujours pas, par contre si je remplace le type AnsiString par le type char alors ca compile.

Est ce que quelqu'un sait pourquoi ca compile avec char mais pas avec AnsiString ?

Marc

mercredi 4 janvier 2006 à 17:08:11 | Re : Problème avec une classe

Freeskieur

Ca passe maitenant avec ansiString car j'ai rajouté #include <vcl.h>

Ca passe sur la classe
par contre ca plante dans la méthode SetValue avec le message de débordement de pile.

Ma classe :

class CValues
    {
    public:
        //! Default constructor
        CValues(){}
        //! Destructor
        virtual ~CValues() {}
        //! Set or get a value using its associated key
        __property double Value[AnsiString key] = {read=GetValue, write=SetValue};
        //! Multiply all currently stored values by the same factor
        void operator*(double factor);

        void SetValue(AnsiString key, double value) ;
        double GetValue(AnsiString key) ;

    private :
    protected :

    };


Mes methodes :

//******************************************************************************
void CValues::SetValue(AnsiString key, double value)
    {
    Value[key] = value ;
    }

//******************************************************************************
double CValues::GetValue(AnsiString key)
    {
    return Value[key] ;
    }


Mes questions :
1) Pourquoi ca foire et comment faire pour que ca marche ?
2)J'ai utilisé une propriété pour les composants graphiques, mais jamais dans une simple classe et je comprends pas comment ca marche.
C'est quoi une propriété ?
Ca correspond à quoi ?
Ca fonctionne comment ?

J'ai passé toute l'après midi a essayer de faire tourner cette merde et ca commence à vraimment me taper sur le système.
Merci d'avance à ceux qui m'empécheront de balancer mon pc par la fenêtre.


mercredi 4 janvier 2006 à 17:49:20 | Re : Problème avec une classe

fredcl

Bonjour,

c'est normal que ça plante par débordement de pile le code dans les fonctions SetValue et GetValue est complètement faux :
Tu refais, via la "property" Value un appel à SetValue ou GetValue, en clair tu boucles.
Le but de ton exercice est justement l'implémentaion de ces deux fonctions dans lesquelles tu dois récupérer ou intégrer dans un tableau de "double" dont l'indexation se fait par un AnsiString.

Cordialement

Fred Cailleau-Lepetit ( [ Lien ])



Cette discussion est classée dans : problème, classe, juste, exercice, cvalues


Répondre à ce message

Sujets en rapport avec ce message

problème de copier-coller pour les .h des dll ? [ par ilimo ] bonjour,j'ai trois projets : P1 : dll : contient la classe aP2 : dll : contient la classe bP3 : exe : contient la classe c qui se sert d Problème "général" avec Direct3D, HELP ! [ par ProGamer ] J'ai commencé une application Direct3D. Elle était constituée d'une classe principale qui contenait l'objet LPDIRECT3D8. Tout marchait bien. Ensuite, pointeur de classe [ par gbcha ] bonjour,J'ai un problème avec microsoft visual C++. J'avais crée un certain nombre de classe, avec un certain nombre de pointeurs sur ces classes. J'a Erreur de segmentation... Qu'est ce que c'est ??? :o [ par Rouliann ] Salut tout le monde j'ai un gros problème et malgré tous mes essais je n'arrive pas à le résoudre... Il n'y a pas d'erreurs à la compilation mais lors Problème de class [ par norton ] Bonsoir, j'ai un problème avec ma class. quand je compile ca me donne ce message d'erreur : error C2653: 'CCamera' : is not a class or namespace name Problème utilisation fonction [ par sidhannowe ] Bonjour, J'utilise la classe screenshot présentée ici: http://www.cppfrance.com/code.aspx?id=21255 mais lorsque je compile Dev c++ m'indique des erre MSComm [ par Scopas ] Bonjour, j’ai un petit problème je cherche à ajouter un le contrôle ActiveX Microsoft communication control, version 6.0 (donc celui de MSComm) Sur Vi Problème à N corps [ par Tonin39 ] Bonjour,Je suis actuellement en 1ère année de l'école d'ingénieur de lausanne (EPFL) et je dois faire un projet  en C++ sur la modalisation d'un probl petit problème d'héritage... [ par _deadstar_ ] Bonjour tout le monde,Voila comme l'indique le sujet j'ai un petit problème avec l'histoire de classe dérivées.    - j'ai une classe mère qui contient problème d'allocation de classe [ par dark_naruto25 ] Salut les amis Voilà un autre problème bizzard. J'ai une classe appelé Bitmap, qui comme son nom l'indique gère une image bmp. Bref, à côté de cette c


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales