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();
    
    };
    
    #endif
    

    allerdings 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.


Anmelden zum Antworten