class Tableau {
private:
int* ptr;
int size;
public:
Tableau(int* p = NULL, int s = 0) : ptr(p), size(s) {}
int& Tableau::operator[](int index)
{
if (size == 0) {
Serial.println("ERREUR TABLEAU VIDE");
while (true) yield();
}
if (index < 0) {
Serial.println("ERREUR INDEX NEGATIF. j'utilise le premier élément");
return ptr[0];
}
if (index >= size) {
Serial.println("ERREUR INDEX TROP GRAND. j'utilise le dernier élément");
return ptr[size - 1];
}
return ptr[index];
}
void Tableau::print() const
{
for (int i = 0; i < size; i++) {
Serial.print(ptr[i]);
Serial.write(' ');
}
Serial.println();
}
};
int donnees[] = { 1, 2, 4, 8 };
Tableau unTableau(donnees, 4);
void setup() {
Serial.begin(115200);
unTableau.print();
unTableau[2] = 42;
unTableau.print();
unTableau[8] = 42;
unTableau.print();
unTableau[-3] = 42;
unTableau.print();
}
void loop() {}