2015-02-13 19 views
6

Tôi biết lỗi này thường là do lỗi cú pháp, nhưng dường như tôi không thể tìm thấy bất kỳ điều gì sai với mã này. Bất cứ ai có thể giúp tôi chỉ ra nó? Dưới đây là các lỗi tôi nhận được:Id không đủ tiêu chuẩn dự kiến ​​trước '[' 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; ^

Đây là chương trình tôi đã biên soạn bằng g ++ trên 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

Bạn đang bối rối cú pháp C++ với Java. – user4098326

+2

Vì kích thước có vẻ là động, 'std :: vector ' là một lựa chọn tốt hơn. –

Trả lời

18

Đây là C++, chứ không phải Java! mảng Declare như thế này:

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

Xin lưu ý rằng các mảng trong C++ phải có một kích thước lúc biên dịch. Trong ví dụ trên, nó là 1000.

+3

Ah, tôi biết tôi đã sử dụng Java quá nhiều thời gian gần đây. Cảm ơn, tôi sẽ lấy lời khuyên của T.C. và sử dụng std :: vector vì kích thước không phải là động. – weskpga

2

sửa đổi:

int myMaxOrders; 
int* myCashierNums; 
int* myOrderNums; 

add:

~SandwichBoard() { 
    if (myMaxOrders) { 
     delete [] myCashierNums; 
     delete [] myOrderNums; 
    } 
} 
Các vấn đề liên quan