2012-11-02 62 views
0

我似乎無法弄清楚,它可能很簡單。我有一個客戶類,我試圖創建一個對象窗體,它不工作,我得到一個未聲明的標識符錯誤和語法錯誤;在標識符c1之前丟失。謝謝我有錯誤,當我處理這個對象,我創建

class Customer{ 
    string customerID; 
    string list; 
public: 
    Customer(void); 
    ~Customer(void); 



    string getcustomerID(){ 
     return customerID; 
    } 
    string getList(){ 
     return list; 
    } 
    void setcustomerID(string x){ 
     customerID = x; 
    } 
    void setList(int x){ 
     if(x==1) 
      list = "bread"; 
     if(x==2) 
      list = "eggs"; 
     if(x==3) 
      list = "cheese"; 
    } 

}; 




void checkout(){ 

    srand(time(NULL)); 
    int random = rand() % 3 + 1; 

    Customer c1; 
    c1.setcustomerID(0); 
+2

你沒有在任何地方定義你的構造函數。 – imreal

+0

最後,我聲明瞭一個對象,但它不會採取 – user1504257

+3

他意味着您沒有在任何地方定義構造函數Customer(void),只聲明它。你錯過了它的代碼。另外請注意,在C++中,您不需要爲空參數列表指定'void'。你可以使用空括號('Customer()')。 –

回答

2

你需要一個默認的構造函數(和析構函數)。如果你想要一個很簡單的一個(並使其編譯)只是這樣做:

Customer() {} 
~Customer() {} 

編輯: KerrekSB是正確的,在這個特別的情況下,你是不是過定義或聲明它們中的更好。

+2

定義這樣的析構函數沒有意義。相反,這使得你的類沒有理由有一個不平凡的析構函數,所以這實際上是不受歡迎的。 –

+0

我想我已經在第5行和第6行了。 – user1504257

+0

@ user1504257,你沒有定義。另外,如果沒有其他構造函數,也可以將構造函數放在外面。 – chris

相關問題