Arrayinitialisierung in kontruktor
-
Hallo leute,
mir is langweilig, und ich will nen kleines morseübersetzungsdingens programmieren!
Hab alle buchstaben in einen string gespeichert, und die morsezeichen in einem stringarray!
.H
#ifndef MorseCoreH #define MorseCoreH #include <string> using namespace std; class WordToMorse { public: WordToMorse(); string GetMorseCode(const string& text); private: void TranslateToMorseCode(); string m_text; string m_morse; string m_morsetable1; string m_morsetable2[34]; }; //---------------------------------------------------------------------------
.cpp
#include "MorseCore.h" WordToMorse::WordToMorse() { m_text = ""; m_morse = ""; m_morsetable1="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; m_morsetable2[0]=".-"; m_morsetable2[1]="-..."; m_morsetable2[2]="-.-."; m_morsetable2[3]="-.."; m_morsetable2[4]="."; m_morsetable2[5]="..-."; m_morsetable2[6]="--."; m_morsetable2[7]="...."; m_morsetable2[8]=".."; m_morsetable2[9]=".---"; m_morsetable2[10]="-.-"; m_morsetable2[11]=".-.."; m_morsetable2[12]="-."; m_morsetable2[13]="---"; m_morsetable2[14]=".--."; m_morsetable2[15]="--.-"; m_morsetable2[16]=".-."; m_morsetable2[17]="..."; m_morsetable2[18]="..-"; m_morsetable2[19]="...-"; m_morsetable2[20]=".--"; m_morsetable2[21]="-..-"; m_morsetable2[22]="-.--"; m_morsetable2[23]="--.."; m_morsetable2[24]="-----"; m_morsetable2[25]=".----"; m_morsetable2[26]="..---"; m_morsetable2[27]="...--"; m_morsetable2[28]="....-"; m_morsetable2[29]="....."; m_morsetable2[30]="-...."; m_morsetable2[31]="--..."; m_morsetable2[32]="---.."; m_morsetable2[33]="----."; } //---------------------------------------------------------------------------
wie ihr seht, is das initialisieren des arrays unschön (viel aufwand)
ich dachte eher an sowas:
m_morsetable2 = {"---","..--"};
aber da bekomm ich immer einen Syntaxerror!
Frage: kann ich so überhaupt das array im konstruktor initialisieren, und wenn nicht, gibt es viell eine ganz andere möglichkeit das zu lösen (viell ohne stringarrys oder so)??
-
Diese Initialisierung geht nur direkt bei der Definition deiner Variablen. Aber da die Klasse nur eine Morsetabelle braucht, solltest du die sowieso static setzen:
class WordToMorse { ... private: static string s_table1; static string s_table2[36];//26 Buchstaben + 10 Ziffern } //die beiden Definitionen gehören in die "Morse.cpp": string WordToMorse::s_table1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; string WordToMorse::s_table2[36] = {".-","-...","-.-.",...};