首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-12-31 
指针数组,数组里面每个元素指向一个对象一个指针数组,数组里面每个元素指向一个对象shape,然后就出错了,pl

指针数组,数组里面每个元素指向一个对象
一个指针数组,数组里面每个元素指向一个对象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;

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

热点排行