c++ new开动态数组的问题
定义了两个类,但是开其中一个类的时候数组的时候怎么也不能通过编译~~求指导
先把hpp贴出来,很长,不用全看哈~~
class monome{
public:
monome(double coeff=0,unsigned degre=0){c=coeff;d=degre;};
inline double coeff()const{return c;};
inline unsigned degre()const{return d;};
double operator()(double x)const;
private:
double c;
unsigned d;
};
class polynome{
public:
polynome(double *coeff, double *degre,unsigned n);
polynome (double coeff=0,unsigned degre=0);
polynome(const polynome &p);
polynome(const monome &m);
inline unsigned degre()const{return n;};
polynome operator=(polynome &p);
double operator()(double x)const;
polynome operator-();
friend std::ostream&operator <<(ostream&,polynome&);
friend polynome operator+(polynome &p,polynome &q);
friend polynome operator-(polynome &p,polynome &q);
friend polynome operator*(polynome &p,polynome &q);
friend bool operator<(polynome &p,polynome &q);//不知道怎么比大小
friend bool operator==(polynome &p,polynome &q);
private:
unsigned n;
monome data[];
};
下面是cpp:
polynome::polynome(double *coeff, double *degre,unsigned n){
int i;
data=new monome[n+1];
for (i=0;i<=n;i++){
data[i]=monome(coeff[i],degre[i]);};
};
就是这行通过不了编译的说:data=new monome[n+1];
我觉得我问题是出在不会开动态数组上,呜呜
[解决办法]
动态数组不是真正的数组,而是你申请的内存空间
monome data[]改成monome *data
[解决办法]
monome data[]; //monome *data;