Hallo,
ich übe gerade alles zu Klassenerstellung. Klappt soweit prima. Aber der print-Befehl im der Methode liefert ein komisches Ergebnis: ⸮Ձklein
Kann mir jemand erklären, warum die Sonderzeichen auftauchen und die Buchstaben "zu" garnicht angezeigt werden?
Danke schon mal
class Kreis {
public:
Kreis (float r){
setRadius(r);
}
void setRadius(float r) {
if (r > 0) {
_radius = r;
} else {
Serial.println(" zu klein");
}
}
float flaeche() {
return PI * _radius * _radius;
}
private:
float _radius;
};
Kreis frank(-10.);
void setup() {
Serial.begin(9600);
Serial.print(" frank.flaeche ");
Serial.println(frank.flaeche());
}
void loop() {
}
wird "lange" vor setup() und damit vor Serial.begin() ausgeführt.
Allerdings gebe ich dir Recht: Erstaunlich, dass der bereits gefüllte Puffer bei .begin() nicht neu initialisiert wird. (Oder was sonst den Effekt verursacht)
Kann mir jemand erklären, warum die Sonderzeichen auftauchen und die Buchstaben "zu" garnicht angezeigt werden?
Danke schon mal
Das kann ich dir sagen!
Der Konstruktor ruft setRadius und setRadius ruft Serial Print
Jetzt wird aber der Konstruktor schon aufgerufen, bevor Serial initialisiert wird.
Das gibt Scherben.
Beispiel:
Erst den Eimer richtig hinstellen, und dann Wasser rein kippen.
Andersrum wird das nichts.