FSST - Hardwarenahe Programmierung

Übungen Initialisierungslisten

Weiter führende Programmierübungen für Überladen von Methoden und Konstruktor.

Initialisieren Sie in der folgenden Klasse mittel Initialisierungsliste den _messwert mit 0:

class MyClass{
public:
    MyClass() {
    }
private:
    double _messwert;
};

Lösung

class MyClass{
public:
    MyClass() : _messwert(0) {
        _messwert = 1;         // Wertzuweisung im Konstruktor-Body
    }
private:
    double _messwert;
};

Initialisieren Sie in der folgenden Klasse mittel Initialisierungsliste die Membervariablen _x und _wahr:

class MyClassA {
public:
    MyClassA(int x, bool wahr)  {}
    int getx(void) {return _x;}
private:    
    int _x;
    bool _wahr;};

Initialisieren - Erzeugen Sie in der folgenden Klasse mittel Initialisierungsliste das I2C-Objekt mit p28, p27:

class MyClassB {
public:
  MyClassB(PinName sda, PinName scl);  // I2C Pins übergeben p28, p27
  float read(); 
  
private:
  I2C i2c;
};

MyClassB sensor(p28, p27);

Initialisieren Sie in der folgenden Klasse mittel Initialisierungsliste die notwendigen Memebervariablen, Konstanten und Referenzen:

class MyClassC
{
    private:
        const int a; // Zuweisung von Konstanten und Referenzen ist nur in der
        int& b;     // Initialisierungsliste, nicht im Konstruktorrumpf zulässig.
        int c;
        int d;

    public:
        MyClassC(int& refB) : ???      {
            c = 20;   // Dies ist eine Zuweisung, KEINE Initialisierung
        }

        static int foo() {
            return 10;
        }
};

All wikipages