Explications dans le dernier message
voir : [résolu] Classes et variables de classe - #8 by 68tjs - Français - Arduino Forum
Bonjour à toutes et à tous,
J'avais déjà joué avec des classes mais avec passages de paramètres dans les méthodes et ça fonctionne.
Là j'ai essayé avec des variables définies dans le fichier entête de la classe (qui est importé dans le fichier main.cpp) et j'ai une bordée d'injures.
Le décor pour commencer : comme j'ai identifié un problème de "syntaxe/comment_faire" j'ai abandonné la prog avec un avr pour régler le pb dans du classique : Code::blocks et sortie console.
Pourquoi Code::blocks : parce que c'est le seul IDE que j'ai trouvé qui me propose directement une sortie console sans me prendre la tête.
Donc voici les messages d'erreurs :
test.cpp |ligne 4| définitions multiples de « Minute »|
main.cpp |ligne10| défini pour la première fois ici|
test.cpp |ligne4| définitions multiples de « Heure »|
main.cpp |ligne10| défini pour la première fois ici|
||=== Build finished: 4 errors, 0 warnings ===|
Le programme principal :
#include <iostream>
#include <stdio.h>
#include "test.h"
using namespace std;
Test machin;
int main()
{
printf("\n \nSans passage de paramètre \n");
machin.affiche_direct();
printf("\n \nAvec passage de paramètre \n");
machin.affiche(10,30,59);
printf("\n \n\n");
return 0;
}
Le fichier entête de la classe : test.h
#ifndef TEST_H
#define TEST_H
#include <inttypes.h>
uint8_t Seconde ;
uint8_t Minute ;
uint8_t Heure ;
class Test
{
public:
Test();
//~Test();
void affiche_direct() ;
void affiche(uint8_t _Heure, uint8_t _Minute, uint8_t _Seconde);
private:
uint8_t _Heure ;
uint8_t _Minute ;
uint8_t _Seconde;
};
#endif // TEST_H
Le fichier test.cpp
#include "test.h"
#include <stdio.h>
Test::Test()
{
_Seconde = Seconde ;
_Minute = Minute ;
_Heure = Heure ;
}
void Test::affiche_direct()
{
_Heure = 1 ;
_Minute = 1 ;
_Seconde = 1 ;
printf("il est %d h %d minutes %d secondes", _Heure, _Minute,_Seconde);
}
void Test::affiche(uint8_t h, uint8_t m, uint8_t s)
{
printf("il est %d h %d minutes %d secondes ", h, m, s);
}
Ce que je ne comprend pas :
définitions multiples de « Minute »
définitions multiples de « Heure»
et pas d'indication de problème sur Seconde,
Dans les déclarations de variable j'ai inversé l'ordre en mettant Seconde en premier c'est pareil tjs Heure et Minute.
Craignant des mots clés j'ai essayé minuscule, majuscule, pluriel : que neni.
Cela fait 2 jours que je tourne en rond, google ne veux rien me dire et ma boule de cristal est en "mouvement revendicatif", je suis sec.
PS : vous noterez que les variables Heure, Minute, Seconde ne sont jamais initialisées, la raison est que je n'arrive pas à passer la phase de compilation, j'ai prévu de les utiliser une fois que le pb de compilation sera réglé.
Merci aux âmes charitable qui pourront m'indiquer ma(mes) conn**rie(s).