读书人

指针数组数组里头每个元素指向一个对

发布时间: 2012-12-31 11:57:52 作者: rapoo

指针数组,数组里面每个元素指向一个对象
一个指针数组,数组里面每个元素指向一个对象shape,然后就出错了,please help me !!!指针数组,数组里头每个元素指向一个对象

class shape{

protected:
double xCoord,yCoord;
public:
shape(double x,double y) : xCoord(x),yCoord(y){}
virtual double area() const{return 0.0;}

};//.............................

class Triangle{

protected:

shape* p[3];

public:
Triangle();
double area() const;


};//.................................

Triangle::Triangle(){
*p=new shape(0,0); //这里有错,下同
p++;
*p=new shape (3,0);
p++;
*p=new shape(3,4);
}

double Triangle::area() const {
return 1.1;

}//................................

[解决办法]

Triangle::Triangle()
{
*p = new shape(0,0); //这里有错,下同
*(p+1) = new shape (3,0);
*(p+2) = new shape(3,4);
}

[解决办法]
p[0]=new shape(0,0);

p[1]=new shape (3,0);

p[2]=new shape(3,4);
[解决办法]
p是一个指针数组的首地址, p是不能当作左值的, 所以p++是不行的
[解决办法]
class shape{

protected:
double xCoord,yCoord;
public:
shape(double x,double y) : xCoord(x),yCoord(y){}
virtual double area() const{return 0.0;}

};//.............................

class Triangle{

protected:

shape* p[3];

public:
Triangle();
double area() const;


};//.................................

Triangle::Triangle(){
p[0]=new shape(0,0);

p[1]=new shape (3,0);

p[2]=new shape(3,4);
}

double Triangle::area() const {
return 1.1;

}//................................

读书人网 >C语言

热点推荐