Zeiger im Konstruktor



  • Hallo zusammen.

    Ich moechte einen Zeiger, den ich in einer Klasse deklariert habe im Konstruktor initialisieren.
    Beispiel:

    class XHighlight
    {
    private:
    char *c_wort[];
    public:
    XHighlight(void);
    };

    XHighlight::XHighlight(void)
    {
    *c_wort[] = { "asm", "auto", "break", "case", "char", "const", "continue",
    "default", "do", "double", "else", "enum", "extern", "float",
    "for", "goto", "if", "int", "long", "register", "return",
    "short", "signed", "sizeof", "static", "struct", "switch",
    "typedef", "union", "unsigned", "void", "volatile", "while" };
    }

    So funktioniert das nicht.
    Kann mir da jemand helfen?



  • //Header
    
    struct A
    {
    	static const char* const p[];
    };
    
    //cpp
    const char* const A::p[] = {"test","test"};
    


  • Fumktioniert leider nicht
    Fehler: Bezeichner 'c_wort' darf keinen Typqualifizierer besitzen



  • Dann machst du etwas falsch, zeig deinen (korrigierten) Code.



  • class XHighlight
    {
    private:
    int pos, anzahl, i;
    static const char* const *c_wort[];
    public:
    XHighlight(void);
    void suchen(void);
    };
    extern XHighlight Highlight;

    XHighlight::XHighlight(void)
    {
    const char* const XHighlight::c_wort[] = { "asm", "auto", "break", "case", "char", "const", "continue",
    "default", "do", "double", "else", "enum", "extern", "float",
    "for", "goto", "if", "int", "long", "register", "return",
    "short", "signed", "sizeof", "static", "struct", "switch",
    "typedef", "union", "unsigned", "void", "volatile", "while" };
    }



  • XHighlight::XHighlight()
    {
    }
    
    const char* const XHighlight::c_wort[] = { "asm", "auto", "break", "case", "char", "const", "continue",
    "default", "do", "double", "else", "enum", "extern", "float",
    "for", "goto", "if", "int", "long", "register", "return",
    "short", "signed", "sizeof", "static", "struct", "switch",
    "typedef", "union", "unsigned", "void", "volatile", "while" };
    

    PS. du hast mutable vergessen 😉



  • Gibt es keine Möglichkeit es im Konstruktor zu initalisieren?
    Es sollen hinterher mehrere Sprachen zur Auswahl stehen.



  • Nein, aber du könntest in der Klasse einen Zeiger auf die statischen Felder haben.


Anmelden zum Antworten