C++动态创建对象数组的编程问题
#include<iostream>#include<stdlib.h>usingnamespacestd;classcircle{public:floatarea(){...
#include<iostream>
#include<stdlib.h>
using namespace std;
class circle
{
public:
float area()
{return radius*radius*3.14159;}
float getradius()
{return radius;}
bool setradius(float r);
float *creat(int ca);
private:
float radius;
};
bool circle::setradius(float r)
{
if(r>0)
{
radius=r;
return true;
}
else
return false;
}
circle *creat(int ca)
{
circle *p=new circle[ca];
for(int i=0;i<ca;i++)
(p+i)->setradius(i);
}
void print(circle *p,int ca)
{
float s=0;
cout<<"圆半径\t\t圆面积\n";
for(int i=0;i<ca;i++)
{
cout<<(p+i)->getradius()<<"\t\t"<<(p+i)->area()<<endl;
s+=(p+i)->area();
}
}
int main()
{
circle *p; //<<<<<<<<<<<<<<<<<<<<<<<<<
p=creat(10);
print(p,10);
delete[] p;
system("pause");
return 0;
}
用DEV C++编译通过,但运行出错,该怎么改,谢谢 展开
#include<stdlib.h>
using namespace std;
class circle
{
public:
float area()
{return radius*radius*3.14159;}
float getradius()
{return radius;}
bool setradius(float r);
float *creat(int ca);
private:
float radius;
};
bool circle::setradius(float r)
{
if(r>0)
{
radius=r;
return true;
}
else
return false;
}
circle *creat(int ca)
{
circle *p=new circle[ca];
for(int i=0;i<ca;i++)
(p+i)->setradius(i);
}
void print(circle *p,int ca)
{
float s=0;
cout<<"圆半径\t\t圆面积\n";
for(int i=0;i<ca;i++)
{
cout<<(p+i)->getradius()<<"\t\t"<<(p+i)->area()<<endl;
s+=(p+i)->area();
}
}
int main()
{
circle *p; //<<<<<<<<<<<<<<<<<<<<<<<<<
p=creat(10);
print(p,10);
delete[] p;
system("pause");
return 0;
}
用DEV C++编译通过,但运行出错,该怎么改,谢谢 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询