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.