array zur laufzeit initialisieren



  • Servus,
    Man kann ja bei der deklaration nen String direkt initialisieren

    double dreieck_xpos[]=
    {
    	100,200,160,260,200,250,600,350,400,500,
    };
    

    nun hab ich aber diese variabel als private in einer klasse vorliegen.

    Also möchte ich die erst in einem konstruktor mit den Werten initialisieren.

    Da müsste ich jetzt wohl oder übel in der klasse eine Feste Größe
    festlegen oder=?

    private:
    double dreieck_xpos[10]
    

    und im Konstruktor sagen

    [/code]
    dreieck_xpos[0]= 100;
    dreieck_xpos[1]= 200;
    .
    .
    .
    [/code]

    ich hab schon versucht das irgendwie auch mit { ...} wie bei der deklaration hinzukriegen aber das geht offenbar nicht?

    Meine Frage ist eigentlich wie man nun am komfortabelsten große arrays zur laufzeit initialisiert...



  • Ja, das geht leider nicht 😕 Was aber noch halbwegs bequem ist:

    // Datei.cpp
    #include "Datei.h"
    
    const double dreieck_xpos_global[]=
    {
        100,200,160,260,200,250,600,350,400,500
    };
    
    XXX::XXX()
    {
        memcpy( dreieck_xpos, dreieck_xpos_global, sizeof(dreieck_xpos_global) );
    }
    
    // Datei.h
    class XXX
    {
        public:
            XXX(); // Konstruktor
    
        private:
            double dreieck_xpos[10];
    };
    

    Damit ersparst du dir den Schreibaufwand, jedes einzelne Feld explizit zuweisen zu müssen 🙂


Anmelden zum Antworten