2015-02-13 17 views
6

Ich weiß, dass dieser Fehler im Allgemeinen für Syntaxfehler ist, aber ich kann nicht scheinen, irgendetwas mit diesem Code falsch zu finden. Kann mir jemand helfen, darauf hinzuweisen? Hier sind die Fehler, die ich bin immer:Erwartete unqualifizierte ID vor '[' 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; ^

Hier ist das Programm, das ich g kompiliert mit ++ auf Ubuntu 14.04 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

Sie sind verwirrend C++ Syntax mit Java. – user4098326

+2

Da die Größe scheint dynamisch zu sein, ist 'std :: vector ' eine bessere Wahl. –

Antwort

18

Dies ist C++, nicht Java! Declare-Arrays wie folgt aus:

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

Bitte beachten Sie, dass die Arrays in C++ muss eine Größe bei der Kompilierung haben. Im obigen Beispiel ist es 1000.

+3

Ah, ich wusste, dass ich in letzter Zeit zu viel Java benutzt habe. Danke, ich werde den Rat von T.C. nehmen und std :: vector verwenden, da die Größe dynamisch sein muss. – weskpga

2

ändern:

int myMaxOrders; 
int* myCashierNums; 
int* myOrderNums; 

add:

~SandwichBoard() { 
    if (myMaxOrders) { 
     delete [] myCashierNums; 
     delete [] myOrderNums; 
    } 
} 
Verwandte Themen