Bonjour,
Je me lance dans l'apprentissage du C++. J'ai acheté 3 livres, les deux premiers sont très simples et le troisième est du niveau universitaire ou d'école d'ingénieur (je ne sais pas encore si je pourrai aller jusqu'au bout !). J'ai attaqué le premier mais les trois reprennent le C (c'est bien normal), ce qui me rend impatient. Du coup parallèlement à mes lectures j'essaye par mes propres moyens de créer une librairie. Je vous présente ce que j'ai fait :
A partir de deux int
, une classe nommée Calcul
possède deux méthodes une qui multiplie les deux chiffres et l'autre qui les soustrait :
1/ fichier d'en tête
#ifndef Calcul_h
#define Calcul_h
#include <Arduino.h>
class Calcul{
public:
Calcul(int A,int B);
int calculMult(void);
int calculSous(void);
private:
int _A;
int _B;
int C;
};
#endif
2/ Le fichier source
#include "Calcul.h"
Calcul::Calcul(int A,int B) {
_A = A;
_B = B;
}
int Calcul::calculMult(){
C = _A * _B;
return C;
}
int Calcul::calculSous() {
C = _A - _B;
return C;
}
3/ Le fichier ino
#include <Calcul.h>
Calcul calc(45, 15);
Calcul calc2(125, 126);
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.print("Instance calc : "); Serial.print("\t");Serial.print(calc.calculMult()); Serial.print("\t"); Serial.println(calc.calculSous());
Serial.print("Instance calc2 : "); Serial.print("\t");Serial.print(calc2.calculMult()); Serial.print("\t"); Serial.println(calc2.calculSous());
}
Sur arduino uno j'ai 4 warning
:
D:\Utilisateur\Documents\ArduinoData\packages\arduino\hardware\avr\1.8.5\cores\arduino\new.cpp: In function 'void* operator new(std::size_t, std::nothrow_t)':
D:\Utilisateur\Documents\ArduinoData\packages\arduino\hardware\avr\1.8.5\cores\arduino\new.cpp:59:60: warning: unused parameter 'tag' [-Wunused-parameter]
void * operator new(std::size_t size, const std::nothrow_t tag) noexcept {
^~~
D:\Utilisateur\Documents\ArduinoData\packages\arduino\hardware\avr\1.8.5\cores\arduino\new.cpp: In function 'void* operator new [](std::size_t, const std::nothrow_t&)':
D:\Utilisateur\Documents\ArduinoData\packages\arduino\hardware\avr\1.8.5\cores\arduino\new.cpp:68:63: warning: unused parameter 'tag' [-Wunused-parameter]
void * operator new[](std::size_t size, const std::nothrow_t& tag) noexcept {
^~~
D:\Utilisateur\Documents\ArduinoData\packages\arduino\hardware\avr\1.8.5\cores\arduino\new.cpp: In function 'void operator delete(void*, const std::nothrow_t&)':
D:\Utilisateur\Documents\ArduinoData\packages\arduino\hardware\avr\1.8.5\cores\arduino\new.cpp:103:55: warning: unused parameter 'tag' [-Wunused-parameter]
void operator delete(void* ptr, const std::nothrow_t& tag) noexcept {
^~~
D:\Utilisateur\Documents\ArduinoData\packages\arduino\hardware\avr\1.8.5\cores\arduino\new.cpp: In function 'void operator delete [](void*, const std::nothrow_t&)':
D:\Utilisateur\Documents\ArduinoData\packages\arduino\hardware\avr\1.8.5\cores\arduino\new.cpp:106:57: warning: unused parameter 'tag' [-Wunused-parameter]
void operator delete[](void* ptr, const std::nothrow_t& tag) noexcept {
^~~
Pourtant ça téléverse et ça fonctionne parfaitement ...
Instance calc : 675 30
Instance calc2 : 15750 -1
Il y a quelque chose que j'ai mal fait mais je n'arrive pas à trouver quoi.
Merci pour votre patience.