[Winform c++] Problème utilisation de class

nico77580 Messages postés 2 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 7 avril 2010 - 4 avril 2010 à 23:00
nico77580 Messages postés 2 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 7 avril 2010 - 7 avril 2010 à 15:35
Bonjour,
Je suis en 2ème année de BTS IRIS et je dois faire un projet permettant de contrôler un robot.
J'ai réussi a faire des Thread, des boutons etc ...

Mais jusqu'à maintenant j'utilisais des variables globales ( déclaré dans public ref class Form1 : public System::Windows::Forms::Form ).
J'aimerais maintenant utiliser des class, pour rendre tout ceci plus propre.
Cependant cela ne marche pas !

J'ai fait ce test :

public: class bidule
{ bidule(void);
  int truc ;
}
public: bidule::bidule(void)
{
truc = 1 ;
}
 
 
// ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// THREAD D'ENVOI
public: void Th_Envoi()
{
bidule var1();
var1.truc = 2 ; }

Th_Envoi est lancer via un boutton, et il marchait bien avec les variables globales.
La création de var1 ne pose aucun probleme, mais quand je tente d'accéder à l'attribut 'truc', il me dit que l'expression à gauche du '.' n'est pas de type class/union ...

Merci pour votre aide !

2 réponses

pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 10
6 avril 2010 à 14:47
Comme tu est dans une classe, ton attribut est forcément privé (et doit le rester), pour pouvoir y acccèder, tu dois créer une fonction publique qui modifie la valeur :


class bidule
{
public:
bidule(): truc(1) {}
void setTruc(int nb) { truc = nb; }
private:
int truc ;
};


// THREAD D'ENVOI

void Th_Envoi()
{
bidule var1();
var1.setTruc(2) ; 
}


Pop70
0
nico77580 Messages postés 2 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 7 avril 2010
7 avril 2010 à 15:35
Merci, j'ai réussi à résoudre ce problème !

Merci beaucoup
0
Rejoignez-nous