2015-02-13 27 views
6

So che questo errore è generalmente per errori di sintassi, ma non riesco a trovare nulla di sbagliato con questo codice. Qualcuno può aiutarmi a farlo notare? Qui ci sono gli errori che sto ricevendo:Previsto id non qualificato prima di '[' token

deli.cc:10:7: error: expected unqualified-id before ‘[’ token int [] myCashierNums; ^ deli.cc:11:7: error: expected unqualified-id before ‘[’ token int [] myOrderNums; ^

Ecco il programma che ho compilato utilizzando g ++ su Ubuntu 14.04 a 64 bit.

#include <iostream> 
#include <stdlib.h> 

using namespace std; 

class SandwichBoard { 
    //private: 
    int myMaxOrders; 
    int [] myCashierNums; 
    int [] myOrderNums; 

    //public: 
    SandwichBoard (int maxOrders) { 
     myMaxOrders = maxOrders; 
     myCashierNums = new int [maxOrders]; 
     myOrderNums = new int [maxOrders]; 

     // All values initialized to -1 
     for (int i = 0; i < maxOrders; i++){ 
     myCashierNums[i] = -1; 
     myOrderNums[i] = -1; 
     } 
    } 

    // For debugging purposes 
    void printMyOrders() { 
     for (int i = 0; i < maxOrders; i++){ 
     cout << "Cashier " << myCashierNums[i] << ", "; 
     cout << "Order " << myOrderNums[i] << endl; 
     } 
    } 

    int getMaxOrders() { return myMaxOrders; } 

}; 

void cashier(void *in) { 

} 

void sandwich_maker(void *in) { 

} 

int main(int argc, char *argv[]) { 

} 
+7

Stai confondendo la sintassi C++ con Java. – user4098326

+2

Poiché la dimensione sembra essere dinamica, 'std :: vector ' è una scelta migliore. –

risposta

18

Questo è C++, non Java! array Declare come questo:

int myCashierNums[1000]; 
int myOrderNums[1000]; 

Si prega di notare che gli array in C++ devono avere una dimensione in fase di compilazione. Nell'esempio di cui sopra, si è 1000.

+3

Ah, sapevo di aver usato troppo Java ultimamente. Grazie, vado a prendere i consigli di T.C. e uso std :: vector poiché la dimensione deve essere dinamica. – weskpga

2

modificare:

int myMaxOrders; 
int* myCashierNums; 
int* myOrderNums; 

aggiuntivo:

~SandwichBoard() { 
    if (myMaxOrders) { 
     delete [] myCashierNums; 
     delete [] myOrderNums; 
    } 
} 
Problemi correlati