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

对象数组初始化及使用,该如何处理

2012-02-15 
对象数组初始化及使用如何对对象数组初始化及使用。如下面的程序为什么不对,应该怎么做。我想显示出每个POIN

对象数组初始化及使用
如何对对象数组初始化及使用。
如下面的程序为什么不对,应该怎么做。我想显示出每个POINT对象的成员值。

class Point
{
public:float x,y;
Point::Point(void)
{

}

Point::~Point(void)
{
}

Point::Point(float x,float y)
{
x=x;y=y;
}


void Point::setPoint(float x,float y)
{
x=x;y=y;
}

};


int main(int argc, char** argv)
{
Point[] p=new Point[5];
   
for (int i=0;i<5;i++)
{
//p[i].setPoint(i,i);
p[i]=new Point(i,i);
}
for (int i=0;i<5;i++)
{
cout<<p[i].x<<","<<p[i].y<<endl;
}

delete []p;
return 0;

}

[解决办法]
#include <iostream>
using namespace std;

class Point 

public:float x_,y_; 
Point::Point(void) 




Point::~Point(void) 



Point::Point(float x,float y) 

x_=x;y_=y; 



void Point::setPoint(float x,float y) 

x_=x;y_=y; 


}; 


int main(int argc, char** argv) 

Point* p[5];

for (int i=0;i <5;i++) 

//p[i].setPoint(i,i); 
p[i]=new Point((float)i,(float)i); 


for (int j=0;j <5;j++) 

cout <<p[j]->x_ <<"," <<p[j]->y_ <<endl; 


for (int h=0;h <5;h++) delete p[h]; 
return 0; 

}


0,0
1,1
2,2
3,3
4,4
Press any key to continue

[解决办法]

C/C++ code
#include <iostream>using namespace std;class Point { public:    float x,y;     Point(){}     ~Point(){}     Point(float x,float y)    {        x=x;y=y;    }        void setPoint(float x,float y)    {        //类中的x,y需要跟函数参数区分开来        this->x=x;this->y=y;    }}; int main(int argc, char** argv) {     //数值对象应该这样创建.或    //Point p[5];    Point *p= new Point[5];         for (int i=0;i <5;i++)     {         //对象已创建,初始化值就OK        p[i].setPoint(i,i);         //p[i]=new Point(i,i); 不需要再重新创建对象,注释掉    }     for (int i=0;i <5;i++)     {         cout <<p[i].x <<"," <<p[i].y <<endl;     }     //删除堆中的对象,该语句对应Point *p[5]= new Point[5];     delete []p;     return 0; } 

热点排行