Accueil > Forum > > > > Probleme avec structure utilisee dans une classe
Probleme avec structure utilisee dans une classe
lundi 30 août 2004 à 12:05:59 |
Probleme avec structure utilisee dans une classe

fcoutel
|
Bonjour! Tout d'abord, Meme si j'uitlise OPENGL ce probleme n'a rien a voir avec OPENGL. Dans le meme fichier GLObject.h j'ai mis: /* OpenGL Material Description*/ struct Material { Vec4D ambient; // Ambient material color Vec4D diffuse; // Diffuse material color Vec4D specular; // Specular material color Vec4D emission; // Emissive material color float shininess; // Specular shininess };
class GLObject: public QObject {
Q_OBJECT // must include this in order to use Qt signals/slots
protected: Vec3D position; // object position Material material[2]; // Front and back material properties .. public : /* default constructor */ GLObject(); ... /*Construct with specified origin, options and front and back materials*/ GLObject(Vec3D pos,uint opts,const Material& front,const Material& back);
...
/*Set material for specified side (where side = 0 or 1)*/ void setMaterial(int side,const Material &mtl);
/*Get material for specified side (where side = 0 or 1)*/ void getMaterial(int side,Material &mtl) const; ..
|
et dans GLObject.cpp j'ai /* Construct with specified origin and options and material*/ GLObject::GLObject(Vec3D pos,uint opts,const Material& front,const Material& back){ position.x=pos.x; position.y=pos.y; position.z=pos.z; material[0]=front; material[1]=back; bbox.lowleft.x=-1.0f; bbox.lowleft.y=-1.0f; bbox.lowleft.z=-1.0f; bbox.upright.x= 1.0f; bbox.upright.y= 1.0f; bbox.upright.z= 1.0f; options=opts; selected=FALSE; hidden=FALSE; setName("GLObject"); }
/*Set material for specified side (where side = 0 or 1)*/ void setMaterial(int side,const Material& mtl) { GLObject::material[0]=mtl; }
/*Get material for specified side (where side = 0 or 1)*/ void getMaterial(int side,Material& mtl) { mtl=material[side]; } |
et au compilateur (SUnWSPRO 6) j'ai deux erreurs du type "GLObject.cpp", line 107: Error: material is not defined. Pourquoi la variable est declaree dans le contsructeur mais pas dans la function membre? J'ai essaye de change protected en public meme resultat. MERCI!
|
|
lundi 30 août 2004 à 14:31:53 |
Re : Probleme avec structure utilisee dans une classe

djl
|
"GLObject.cpp", line 107: Error: material is not defined.
et c'est quoi l'erreur dans le fichier header ?
|
|
lundi 30 août 2004 à 16:41:09 |
Re : Probleme avec structure utilisee dans une classe

D1m3x
|
/*Set material for specified side (where side = 0 or 1)*/ void setMaterial(int side,const Material& mtl) { GLObject::material[0]=mtl; }
|
Cette fonctions est déclarée comme-ci elle n'appartenait pas à la classe, si tu veux implémentée celle définie dans la classe tu dois faire: /*Set material for specified side (where side = 0 or 1)*/ void setMaterial(int side,const Material& mtl) { material[0]=mtl; }
|
Remarque que je ne met pas de GLObject:: devant le nom du membre, car ce n'est pas un membre statique! Tu dois faire la même chose avec getMaterial, seulement ta façon de'implémenter une fonction get( ) est drôle, habituellement une fonction get est implémentée de cette façon: Material GLObject::getMaterial( int side ) { return material[ side ]; }
|
rien de plus simple =) Je pense que l'erreur viennent du fait que tu implémente tes fonctions comme-ci elles ne faisaient pas parties de ta classe ;) Ciao... :.: [DmXx] [ #eX-Concept @ QNet] :.:
|
|
lundi 30 août 2004 à 17:24:23 |
Re : Probleme avec structure utilisee dans une classe

fcoutel
|
Merci de vos reponses mais: Dans mon premier post j'avais fais une erreur j'avais mis GLOBject::material mais comme tu l'as fais remarque ce n'est pas bon. La fonction qui donne l'erreur est bien celle ci-dessous void setMaterial(int side,const Material& mtl) { material[0]=mtl; }
|
Pour getMaterial tu as raison mais elle n'etais pas finie.. J'ai contourner mon probleme en declarant une nouvelle classe Material et en implementant les memes fonctions mais bon j'aimerais savoir pourquoi une simple structure ne marche pas;.
|
|
lundi 30 août 2004 à 18:33:23 |
Re : Probleme avec structure utilisee dans une classe

djl
|
ta fonction doit etre membre de ta classe, et evite les parametres inutilent
et surtout les acsesseurs INLINE !
|
|
mardi 31 août 2004 à 21:38:48 |
Re : Probleme avec structure utilisee dans une classe

leprov
|
djl pitite kestion. si ton accesseur est defini ds le .h il est inline (ou jai rien compris audebat de lautre fois), alors comment tu fais pr dire "la met pas en inline"? et pk pas d'accesseurs inline?
|
|
mardi 31 août 2004 à 23:04:51 |
Re : Probleme avec structure utilisee dans une classe

djl
|
il faut que ce soit dans la declaration de la classe
en gros pour qu'un accesseur soit inline, il y a 2 facons
struct Foo {
int x; ... int getX() const { return x; }
};
ou
struct Foo { int x; ... inline int getX() const; };
inline int Foo::getX() const { return getX(); }
dans tout les cas ca doit etre dans un fichier header (jamais compilé separement)
|
|
mercredi 1 septembre 2004 à 00:21:58 |
Re : Probleme avec structure utilisee dans une classe

leprov
|
ah ok....javais capté de travers...javais compris que .h
type f (type);
.cpp
type f (type t) {instructions;}
ca mettait inline...alors ke la si jai capté cest si corps directement ds la declaration, la cest inline. cest ca?
|
|
mercredi 1 septembre 2004 à 00:22:11 |
Re : Probleme avec structure utilisee dans une classe

leprov
|
enfin tt ca ds une classe
|
|
mercredi 1 septembre 2004 à 08:57:56 |
Re : Probleme avec structure utilisee dans une classe

djl
|
voila, si c'est dans la classe, ca l'est implicitement, sinon il faut specifier inline, mais jamais dans le .cpp (sinon ca sera pas inliner, du moins pour les autres modules compilés séparement)
|
|
Cette discussion est classée dans : const, side, material, specified, globject
Répondre à ce message
Sujets en rapport avec ce message
Fichier VMF [ par otofraise ]
Bonjour a tous,Je ne sais pas si ce post est a sa place, mais je ne savais pas trop sur quel site de cs le placer.Je voudrais utiliser les fichiers VM
Marche pas : Changer la résolution de l'écran [ par yserver ]
Bojours.La réponse sera a prioris toute bête. Je pose qd même mon code qui à passer pour un idiot, mais faut bien avancer.Donc le pb c'est cette fonct
Template [ par T_Mehdi ]
salut a tous : bon ma question est facile c koi la diference entre ces 2 code ( car au niveau execution ca done la meme chose :s) template genType r
mais c koi cet héritage de m... [ par nomad56 ]
salut, j'utilise wxWidgets et g un piti pb simple à régler surement mais je vois pas trop la subtilité moi personellement donc si kk1 pouvait m'aider
c++, conversion char to const char [ par freekid ]
char num; cout /dev/modem cin>>num; &nbs
Template: Spécialisation partielle [ par luhtor ]
Bonsoir, j'ai une classe définie comme suit: template class operator_binary_pow;et notamment une fonction membre: template inline _T operator_bina
Erreur avec enum [ par goutbouyo ]
SAlut,J'essaie de compiler un code trouver sur le net :enum FrustumSide{ RIGHT = 0, // The RIGHT side of the frustum LEFT = 1, // The LEFT side of
Membres amies [ par gdefrance ]
Bonsoir à tous, débutant en C++, j'ai besoin de votre aide pour trouver mon bug dans le programme.Voilà, je dois faire un exo avec un membre friend et
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|