Array in Klasse
-
Hi,
ich möchte gerne einen vector vom Typ Route deklarieren.
Route ist:
#ifndef _ROUTE_ #define _ROUTE_ #include <string> class route { public: string consl[3][3]; int x,y; route(); }; #endifallerdings kommen folgende Fehlermeldungen:
error C2146: syntax error : missing ';' before identifier 'consl'
und:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Was mache ich falsch?
greetz johnc
-
std::string ?
-

oh man

greetz JohnC.
-
string conslt[4][8]; vector<route> vRoute; route temp; for (int a=0; a<=3;a++) { for(int b=0; b<=3;++b) { getline(dat_ein,dateiname); conslt[a][b] = dateiname; } } vRoute.push_back(temp); vRoute[0].consl = conslt;Compiler sgat mir linke Seite muss ein l-Wert sein. Wie kann ich sonst das Array kopieren?
greetz johnc.
-
Mach auf jeden Fall die Datenmember deiner Klasse private, damit niemand in ihren Eingeweiden rumwühlen kann und ihre Invarianten erhalten bleiben. Dann könntest du dein string-Array in einen vector<vector<string> > umwandeln und den dann sezten. Was bei dir nicht geht: consl und conslt werden in Zeiger auf das erste Element des Arrays umgewandelt und sind daher beides r-values. C-Arrays werden nicht als eigene Objekte behandelt, daher kann man sie nicht einander zuweisen wie beispielsweise die Standardcontainer.