Probléme de class

F0ra Messages postés 111 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 29 décembre 2008 - 15 avril 2008 à 19:11
F0ra Messages postés 111 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 29 décembre 2008 - 15 avril 2008 à 22:24
Bonjour,
J’ai un problème pour réaliser une classe en C++ .net.
Je voudrais exécuter la fonction RandomPoids() quaund je clique sur le bouton dans la Form1.



Dans le fichier Ia.h :
#pragma once


struct Neuron {
  double* dw;
};


struct Couche {
  int     nNumNeurons;
  Neuron* pNeurons;
};


public ref class Rn {


Couche* pCouches;


public:
void RandomPoids();
};



Dans le fichier Ia.cpp :
#include "StdAfx.h"
#include "Ia.h"


void Rn::RandomPoids()
{
  for( int i = 1; i < 10; i++ )
  pCouches[i].pNeurons[i].dw[i]    = 0.0;
}



Dans le fichier Forom1.h :

#pragma once
#include "StdAfx.h"
#include "form2.h"
#include "Ia.h"



Rn      Ia; ////////////

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
{
Ia.RandomPoids(); // ici, ça bug. Je n’arrive pas à exécuter RandomPoids();
Form2 ^maForm2 = gcnew Form2();
maForm2->richTextBox1->AppendText("test");
maForm2->Show();
}


Merci beaucoup
@+

7 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
15 avril 2008 à 21:39
Pas de constructeur ? Mais où donc est alloué la mémoire pour pNeurons ?

for( int i = 1; i < 10; i++ )
À moins que ce soit volontaire, un tableau commence TOUJOURS à 0 PAS À 1

C++ (@++)<!--
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
15 avril 2008 à 21:41
Et puis d'ailleurs, tu n'alloues pas non plus de mémoire pour pCouches ni pour dw.

C++ (@++)<!--
0
F0ra Messages postés 111 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 29 décembre 2008
15 avril 2008 à 22:03
c'est bien volontaire tout ça. C'est juste pour un test.
ce n'est pas ça qui cause un problème.
je n'arrive pas à réaliser une class simple.



Ce n’est peut être pas la bonne manière de faire.
@+
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
15 avril 2008 à 22:07
Ben je vois mal comment ton test pourrais fonctionner si tu n'alloue pas de mémoire pour tes pointeurs.

C++ (@++)<!--
0

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

Posez votre question
F0ra Messages postés 111 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 29 décembre 2008
15 avril 2008 à 22:11
Je veux  juste pouvoir exécuter une fonction dans une class.






Un truc tout simple pour commencer, pour comprendre.
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
15 avril 2008 à 22:19
Ben... en VRAI C++ (pas en C++.NET):

class toto {
private:
    int popo;

public:
    toto () { // Constructeur par défaut
       popo = 0;
    }
    toto (int i) { // Constructeur paramétré
       popo = i;
    }
    toto (toto &t) { // Constructeur de copie
       popo = t.popo;
    }

    // Méthode get set
    void setpopo (int i) {
       popo = i;
    }

    int getpopo () {
       return popo;
    }
};

...
// Plus loin dans le code

toto mytoto(35);

cout << mytoto.getpopo() << endl;

mytoto.setpopo(23);

cout << mytoto.getpopo() << endl;

etc. etc. etc.

C++ (@++)<!--
0
F0ra Messages postés 111 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 29 décembre 2008
15 avril 2008 à 22:24
Ok,
En .net, ça ne fonctionne pas ce genre de chose.
J’en ai déjà réalisé une en VRAI C++ sans problème.
Merci quand même.
Je vais continuer à chercher.
@+
0