#0 

15-01-2009 16:49:35

bubix
Petit nouveau
Date d'inscription: 12-12-2008
Messages: 9

Bonjour,

Voilà j'ai un problème avec la ISceneNode. Dans une classe j'ai une liste de ISceneNode et j'aimerais travailler avec comme par exemple extraire et stocker un objet ISceneNode. Mes importations des headers-files sont correctes. Je pense que mon problème vient du langage C++ ou d'une limitation de cette classe que Irrlicht a développée.

Voici mon code:

header files
class test {

private:
    irr::core::array<irr::scene::ISceneNode*> list;

public:
    irr::core::array<irr::scene::ISceneNode*> GetList();
};

//Implementation méthode GetList()
array<ISceneNode*> test::GetList(){
  return(list);
}

====================================================

int main(){
    //START

    test* t1= new test();
   
    //Ce code ne fonctionne pas, est-ce quelqu'un sait pourquoi?
    //Ou comment solutionner ce problème?

    ISceneNode* n1=t1->GetList()[1];

    //NOTE: MA LISTE N'EST PAS VIDE!!! ELLE CONTIENT DES ISCENENODES!!!

    //END
    return 0;
}

Avec visual studio j'ai l'erreur suivante qui apparaît:

irr::core::array<irr::scene::ISceneNode *,irr::core::irrAllocator<irr::scene::ISceneNode *> >::operator[](unsigned int index=1)

Si quelqu'un peut m'aider....

Merci.

A+

Hors ligne


#1 

15-01-2009 18:18:56

hardcpp
Abonné
Date d'inscription: 26-04-2008
Messages: 229

tu ne peut pas faire () et []  a la suite voila comemnt faire  :

Code:

class test 
{
public:
    irr::core::array<irr::scene::ISceneNode*> list;
};


====================================================

int main()
{

    test* t1= new test();
   

    ISceneNode* n1=t1->list[1];

    delete test;

    return 0;
}

ou alors (a tester)

Code:

ISceneNode* n1 = (t1->GetList())[1];

Dernière modification par hardcpp (15-01-2009 18:21:34)

Hors ligne


#2 

15-01-2009 18:48:31

bubix
Petit nouveau
Date d'inscription: 12-12-2008
Messages: 9

Merci Hardcpp pour ta rèponse rapide!


Malheureusement le code suivant :

ISceneNode* n1 = (t1->GetList())[1];

Ne change rien. J'ai toujours le même.

Doit-on utiliser un itérator lorsque qu'on une liste de ISceneNode ?

A+

Hors ligne


#3 

15-01-2009 19:49:14

hardcpp
Abonné
Date d'inscription: 26-04-2008
Messages: 229

ou utilise un std::vector

Hors ligne


#4 

15-01-2009 21:23:49

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Ecrire un code tel que GetList()[1]; ne pose pas de soucis en fait. La ou se pose le problème est dans le code de GetList dans ta classe.
Car si tu passe ton champ 'list' en public, et que cherche à accéder à ta liste par le champ directement sans passer par la methode GetList, cela fonctionne très bien wink


Force et sagesse...

Hors ligne


#5 

15-01-2009 23:31:52

bubix
Petit nouveau
Date d'inscription: 12-12-2008
Messages: 9

Salut,

ISceneNode* n1=t1->GetList()[1];  => J'ai essayé ce bout de code mais cela ne fonctionne pas sous Visual Studio. Je ne sais pas trop pourquoi. Et cela même si j'ai un attribut public "list" dans ma classe test.

Mais ceci fonctionne:

ISceneNode* n1=t1->list[1];                 // list attribut public dans la class Test (j'ai supprimé la méthode GetList())

Merci pour votre aide.

A+

Hors ligne


#6 

16-01-2009 06:17:41

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

bubix :

Salut,

ISceneNode* n1=t1->GetList()[1];  => J'ai essayé ce bout de code mais cela ne fonctionne pas sous Visual Studio. Je ne sais pas trop pourquoi.


Chez moi cela fonctionne très bien avec Visual studio wink


bubix :

Mais ceci fonctionne:

ISceneNode* n1=t1->list[1];                 // list attribut public dans la class Test (j'ai supprimé la méthode GetList())

Merci pour votre aide.

A+


C'est ce que je suggérais plus haut wink


Force et sagesse...

Hors ligne


#7 

16-01-2009 11:28:11

bubix
Petit nouveau
Date d'inscription: 12-12-2008
Messages: 9

Désolé...désolé....désolé!!!! J'ai écrit un nouveau test pour contrôler le contenu de ma liste !!! Effectivement cette liste était vide!


Encore une fois je m'excuse pour cette erreur!

Salutations.

bubix

Hors ligne


#8 

16-01-2009 13:16:52

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Pas de soucis, l'essentiel c'est  que cela fonctionne wink


Force et sagesse...

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
48 invités en ligne
Aucun membre connecté
RSS Feed