2017-04-15 87 views
-5

我需要使用新的運算符來動態分配數組的大小我試過這段代碼,但它不起作用。在C++中使用新的運算符

#include<iostream> 

    using namespace std; 

    class queue 
    { 
     int *elt[];//making the pointer array 
     int front,rear,size; 
     public: 
     queue(int a) 
     { 
      front=rear=-1; 
      size=a; 
      elt=new int [size];//declaring its size dynamically 
     } 
     void push(int n); 
     int pop(); 
     void display(); 
    }; 
+3

發佈[MCVE]。 「不起作用」甚至意味着什麼?澄清錯誤/行爲。 –

+0

此代碼中出現的錯誤是在[int *]賦值爲'int * [0]'時出現[Error]不兼容的類型' – AMK

+2

'vector elt;'...'queue(int a):elt(a) ,前(-1),後(-1){}',刪除大小 –

回答

0

爲什麼不使用std::vector<int>?它會讓你的生活更輕鬆。

順便說一句,你忘記了定義刪除已分配數組的析構函數。

+0

這不是一個真正的答案,我想象這個操作不使用'std :: vector <>'的原因是因爲他們正在學習動態內存分配。另外「順便說一下,你忘記定義刪除已分配數組的析構函數」,這可能是操作系統需要析構函數的情況,但無法說明,析構函數並不是緩存已分配內存的唯一方法從一個物體。 – George