2014-11-09 55 views
0

我想創建一個C++程序,如果用戶希望添加另一條記錄,則用戶輸入他的選擇,如果是,則爲該記錄創建一個新對象。如何動態創建未定義大小的對象?

因此,如果我包含構造函數,那麼每次用戶需要時如何創建一個新對象? (如果我給予對象數組預定義的大小,那麼將調用構造函數,例如50次並初始化所有50個對象,而用戶可能只想輸入更少)。 讓我們只說

class grocerylist 
{ 
    float price; 
    char pname; 
    public: grocerylist(){.....} //constructor 
      <some code> 
      ..... 
} 

main() 
{ 
    //grocerylist a[50]; this will call constructor 50 times! which is not desired 

} 

我在這裏的猜測是使用一個循環內的新運營商,當用戶不想要輸入任何更多records.But問題是這將打破,這是一次涉及範圍將被銷燬出了一個循環。

+6

閱讀您最喜歡的C++教科書中的「std :: vector」。 – 2014-11-09 04:46:20

+0

使用std :: vector來存儲對象。要創建一個新的購物清單'grocerylist * glist = new grocerylist();' – Benji 2014-11-09 04:49:05

+1

@Benji或者最好是'grocerylist glist;'。 – 0x499602D2 2014-11-09 04:50:42

回答

2

使用std::vector和只是push grocerylists。例如:

int main() { 
    std::vector<grocerylist> list; 
    [...] 
    while(user_wants_to_add_another_list) { 
     list.push(grocerylist(...)); 
    } 
}