Konstater Array als Memberfunktion



  • Hi!
    Ich versuche gerade einen Array als konstante Memberfunktion zu deklarieren und zu füllen, aber das will nicht so ganz 🙂
    Eigentlich sollte das so aussehen:

    class bla {
      const char myArray[5] = {'1','2','3','4','5'};
      bla();
    }
    //bla.cpp
    bla::bla() {
      machwas();
    }
    

    Aber das geht ja bekanntlich nach C++-Standard nicht. Ich weiss, dass ich den Array direkt nach dem Konstruktor-Kopf aufrufen muss, nur bekomme ich keinen gültigen Aufruf für Arrays hin 😡

    Könnte mir wer zeigen wie der Aufruf korrekt aussehen müsste?

    Gruß
    Pille 😉



  • So?

    class bla {
      static const char myArray[];
    };
    
    const char bla::myArray[5] = {'1','2','3','4','5'};
    


  • Und wenns tatsächlich dynamisch initialisiert werden soll:

    class bla
    {
      const boost::array<char,5> blarray;
    
      bla(char c1, char c2, cahr c3, cahr c4, cahr c5)
        : blarray(boost::assign::list_of(c1),c2,c3,c4,c5)
      {
      }    
    
    };
    


  • pumuckl schrieb:

    Und wenns tatsächlich dynamisch initialisiert werden soll:

    class bla
    {
      const boost::array<char,5> blarray;
    
      bla(char c1, char c2, cahr c3, cahr c4, cahr c5)
        : blarray(boost::assign::list_of(c1),c2,c3,c4,c5)
      {
      }    
    
    };
    

    Sowas in der Richtung hatte ich versucht, nur eben mit einem normalen Array und nicht mit boost::array.
    Naja David_pb's Version klappt - danke!


Anmelden zum Antworten