2017-04-15 102 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