Salut,
Je me mets à programmer en C sur un microcontroleur. Je fais plutôt du java d'habitude mais je voudrais communiquer avec une carte arduino.
Je voudrais manipuler un ensemble d'objets variable et les faire bosser dans une boucle.
Voici le code que j'utilise
Je n'ai pas droit au mot clef "new". La fonction setup() est exécutée en premier, loop() tourne en boucle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 class Animal { protected : int _num ; public : Animal(){} Animal( int num ) { _num = num ; } virtual void parle() const=0 ; }; class Chien : public Animal { public : Chien( int num ): Animal( num ) { } virtual void parle() const { Serial.println("wouarf"); } }; class Chat : public Animal { public : Chat( int num ): Animal( num ) { } virtual void parle() const { Serial.println("miaou"); } }; Animal * poly[20]; int nbBetes = 0 ; Chien c1 = Chien(1); //Chat c2 = Chat(2); void setup() { Serial.begin(9600); //Chat c2 = Chat(2); poly[nbBetes++] = &c1; poly[nbBetes++] = (Chat*)malloc( sizeof( Chat ) ); } void loop() { Serial.println( millis() ); for( int i = 0 ; i < nbBetes ; i++ ) { poly[i]->parle(); delay( 1000 ); } }
En fait je cherche à remplir le tableau poly avec des objets. L'objet Chien est déclaré en dur et en global et ça fonctionne. Si j'essaye de créer le Chat à l'intérieur de la fonction setup() ça plante et le microcontrôleur reboot. On me dit que c'est un problème de scope, mais existe-t'il un moyen de faire ce que je veux ? Créer des objets dans une fonction et les stocker dans un tableau ?
Partager