簡體   English   中英

在'['標記之前預期的不合格標識

[英]Expected unqualified-id before '[' token

我知道這個錯誤通常是出於語法錯誤,但我似乎無法發現此代碼有任何問題。 任何人都可以幫我指出來嗎? 以下是我得到的錯誤:

deli.cc:10:7:錯誤:在'['token int [] myCashierNums之前預期的unqualified-id; ^ deli.cc:11:7:錯誤:在'['token int [] myOrderNums之前預期的unqualified-id; ^

這是我在Ubuntu 14.04 64位上使用g ++編譯的程序。

#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[]) {

}

這是C ++ ,而不是Java 聲明這樣的數組:

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

請注意,C ++中的數組在編譯時必須具有大小。 在上面的例子中,它是1000。

修改:

int myMaxOrders;
int* myCashierNums;
int* myOrderNums;

加:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM