Fehler bei Konstruktor

Hallo zusammen, ich möchte mir eine Klasse namens "Ventil" erstellen, habe aber beim Erstellen des Konstruktors einen für mich nicht nachvollziehbaren Fehler.

Ventil.h:

class Ventil
{
public:
  Ventil (byte Tauf, byte Tzu, byte nPin);  
};

Ventil.cpp:
#include "Ventil.h"

Ventil::Ventil (byte Tauf, byte Tzu, byte nPin)
{
  
}

Fehlermeldung:
In file included from sketch\Ventil.cpp:1:0:

Ventil.h:4:15: error: expected ')' before 'Tauf'

Ventil(byte Tauf, byte Tzu, byte nPin);

^~~~

Die Ventil.h hat so auszusehen:

#pragma once
#include <Arduino.h>

class Ventil
{
  public: 
    Ventil(byte Tauf, byte Tzu, byte nPin);
};

Die Problematik steckt in der (fehlenden?) Definition von byte.

Ah, jetzt ja.Danke für den Hinweis

Hi

Was denkst Du, wo 'byte' dem Kompiler klar gemacht wird?
Das Ding könntest Du auch Herribert nennen - und dem Kompiler wär's egal.

MfG

Die Problematik steckt in der (fehlenden?) Definition von byte.

?
Spätestens nach #include <Arduino.h>sollte der Datentyp byte bekannt sein.
Da habe ich mir allerdings in der Arduino Umgebung noch nie Gedanken gemacht.

Der Datentype byte kommt im C++11 Standard nicht vor.
Ist also eine Arduino Extrawurst.

Erst C++17 führt byte ein.

:o ich freue mich schon auf die damit einhergehenden Verwirrungen :o

:o ich freue mich schon auf die damit einhergehenden Verwirrungen :o

Ja. z.B: sowas

en.cppreference.com/w/cpp/types/byte:
it is not a character type and is not an arithmetic type. A byte is only a collection of bits, and the only operators defined for it are the bitwise ones.

...kann man natürlich nicht ernst nehmen brauchen.

Gilt zum Glück auch nur für std::byte ab C17

Gilt zum Glück auch nur für std::byte ab C17

Ein

using namespace std;
ist sowieso verpönt, aber nach C++17 dann wohl eine Falle.
OK, das wird nicht die AVR betreffen, da keine STD-Lib.
Aber die ganzen ARM und sonstigen 32 und 64 Bit Dinger, die betrifft das.

Eigentlich wäre das nicht passiert, wenn sich Arduino an die unausgesprochene, und doch gerne widersprochene, Regel halten würde:

Datentypen, abseits des C++ Standards, werden mit einem Großbuchstaben begonnen.

Seit der Erfindung von Arduino wurde versucht, dass die "Arduino Sprache" (C++) wie Java aussieht:
Beispiel Datentypen: boolean, byte
Beispiel Methoden: println

Ob das jemals hilfreich war, ist fraglich.