Wie initialisiere ich bei Strukturen?



  • Beispiel:

    struct kostenTyp
    { int menge;
    float preis;
    };

    Und nun will ich 4 verschiedene Werte für preis und menge initialisieren und mit ihnen später weiterarbeiten..wie mache ich das??



  • Hi!

    Also ich schreib mir da ganz gerne nen Konstruktor. Kannst aber natürlich auch nen Objekt von der Struktur erstellen und jeden Wert dann zuweisen.
    Version ohne Konstruktor:

    struct kostenTyp
    { int menge;
    float preis;
    }; 
    
    int main() {
      kostenTyp kt;
      kt.menge = 10;
      kt.preis = 2.50f;
    }
    

    Version mit Konstruktor:

    struct kostenTyp
    { int menge;
    float preis;
      kostenTyp() : menge(0), preis(0.0f) {} // Standard-Konstruktor
      kostenTyp(int m, float p) : menge(m), preis(p) {}
    }; 
    
    int main() {
      kostenTyp kt(10, 2.50);
    }
    

    Greetz



  • Hallo,
    da es sich bei kostenTyp um ein Aggregat (im Sinne des C++ Standards) handelt, kann du auch eine Aggregat-Initialisierung verwenden:

    struct kostenTyp
    { 
      int menge;
      float preis;
    };
    
    int main() {
      kostenTyp kt = {10, 2.5f};
      // mit Array
      kostenTyp arr[3] = { {1,2.0f}, {2,3.1f}, {7, 42.2f} };
    }
    

Anmelden zum Antworten