Array vom Typ CString feste Werte eintragen



  • Ich kanns ja selber net glauben, das ich das grad net hinbekomm^^

    Meine Klasse hat ein Array vom Typ CString

    Deklaration als Membervariable:

    CString m_strArray[5];
    

    Nun soll in dem Array immer die gleichen Strings stehn.
    Normal würd ich das dann so machen (Konstruktor oder so).

    m_strArray = {"test1","test2","test3","test4","test5"};
    

    Alternativ natürlich so:

    m_strArray[0] = "test1";
    m_strArray[1] = "test2";
    m_strArray[2] = "test3";
    m_strArray[3] = "test4";
    m_strArray[4] = "test5";
    

    aber da es ein etwas größeres Array ist, wäre es etwas viel Code,
    man müsste es doch gleich komplett befüllen können oder?

    Da bekomm ich aber Compilerfehler, weiß jmd was ich falsch machen?



  • CStringArray gibt es. 🙂

    Und die Compilerfehler würden bei der Fehlersuche enorm helfen. 😉



  • Compilerfehler:

    Syntaxfehler: '{'
    Syntaxfehler: Fehlendes ';' vor '{'
    Syntaxfehler: Fehlendes ';' vor '}'
    

    Dann schau ich mir halt doch mal CStringArray an, dachte das müsste doch auch ohne zu lösen sein.



  • Also bei CStringArray muss ich das dann auch so lösen:

    m_strArray[0] = "test1";
    m_strArray[1] = "test2";
    m_strArray[2] = "test3";
    m_strArray[3] = "test4";
    m_strArray[4] = "test5";
    

    oder ich ruf immer die Funktion CStringArray::Add() auf.
    Naja ist ja ne einmalige Initialisierung dann mach ichs halt doch so.



  • Wenn die Initialisierung für alle Instanzen Deiner Klasse gleich ist, dann pack Dir die Daten in einen static Array:

    static CString m_strArray[5] = {"test1","test2","test3","test4","test5"};
    

    Wenn die Initialisierung unterschiedlich für jede Instanz Deiner Klasse sein kann, dann lege das

    CString strArray[5] = {"test1","test2","test3","test4","test5"};
    

    ausserhalb Deiner Klasse an und übergib strArray im Konstruktor Deiner Klasse.

    So lässt sich das ganze mit STL-Algorithmen oder einer for-Schleife in eine Membervariable übertragen, falls das nötig sein sollte.

    P.S. die const-correctness habe ich mir hier mal erspart... 🤡


Anmelden zum Antworten