2015-02-13 12 views
6

Bu hatanın genellikle sözdizimi hataları için olduğunu biliyorum, ancak bu kodda yanlış bir şey bulamıyorum. Biri bana işaret etmeme yardım edebilir mi? İşte alıyorum hataları şunlardır:Beklenmedik bir kimlikten önce bekle '[' 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; ^

İşte Ubuntu 14.04 64 bit g ++ kullanımı derlenmiş program.

#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

Java ile C++ sözdizimi kafa karıştırıcıdır. – user4098326

+2

Boyut dinamik gibi göründüğünden, std :: vector 'daha iyi bir seçimdir. –

cevap

18

Bu, C++ değil, Java! Böyle Declare diziler:

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

C diziler ++ derleme zamanında bir büyüklüğe sahip olması gerektiğini lütfen unutmayın. Yukarıdaki örnekte, 1000

+3

Ah, Son zamanlarda Java'yı çoktan kullandığımı biliyordum. Teşekkürler, T.C.'nin tavsiyelerini alıp std :: vector 'u kullanacağım çünkü boyut dinamik olmalı. – weskpga

2

değiştirmek geçerli:

int myMaxOrders; 
int* myCashierNums; 
int* myOrderNums; 

eklenti:

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