c++定义一个圆的类

#include"iostream.h"
class circle
{
double r=0,area=0;
public:
double getr()
{
return r;
}
circle(double x)
{
r=x;
}
double getarea()
{
area=3.14*r*r
return area;
}
};

void main()
{
double a;
cout<<"print r:"<<endl;
cin>>a;
circle cir=new circle(a);
cout<<cir.getarea()<<endl;
}
有什么问题呢?
把 circle cir=new circle(a);
改为circle cir(a);后就减少了问题,为什么呢?
报错是'initializing' : cannot convert from 'class circle *' to 'class circle'

#include"iostream.h"
class circle
{
private:
double r,area; //应通过构造函数来初始化成员变量
public:
double getr()
{
return r;
}
circle(double x)
{
r=x;
}
double getarea()
{
area=3.14*r*r; //缺少分号
return area;
}
};

int main()
{
double a;
cout<<"print r:"<<endl;
cin>>a;
circle *cir=new circle(a); //new() 的返回类型是指针类型
cout<<cir->getarea()<<endl;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-26
#include"iostream.h"
class circle
{
double r,area;
public:
double getr()
{
return r;
}
circle(double x)
{
r=x;
}
double getarea()
{
area=3.14*r*r;
return area;
}
};

void main()
{
double a;
cout<<"print r:"<<endl;
cin>>a;
circle *cir=new circle(a);
cout<<cir->getarea()<<endl;
}

回去好好看看书吧!
第2个回答  2010-05-26
circle cir=new circle(a);改成circle * cir=new circle(a);就可以了
因为new动态分配一个内存的话 返回的是一个指向该内存的指针
第3个回答  2010-05-26
把类的成员函数定义成public就可以了,不然没法访问

C++编程序题:(一)定义一个圆类XY,计算圆的面积和周长(). 要求:1.该...
具体代码如下: 【程序代码】#include <iostream> \/\/控制台操作头文件 class XY \/\/定义一个类{private: \/\/私有成员关键字 double R; \/\/圆的半径 public: \/\/公开成员关键字 XY(){R=0;} \/\/无参构造

用c++编写一个程序 定义一个圆的类circle.并定义私有成员变量r.area,同...
private double r;public void inputData(){ cout<<"please input the circle's radius: \/n";cin>>r;} public void calArea(){ area=3.14*r*r;} public void outputData(){ cout<<"the area is : " + area;} PS: 要是楼主放在同一个cpp文件中,请注意circle类应放在最前面。...

C++ 设计一个圆类,计算圆的面积和周长。
const double pi = 3.14;\/\/Point类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area()。template <class T> class Point { public:Point(){} Point(const T x, const T y);Point& operator= (const Point<T>&p);public:T x;T y;};template <class T> Point<T>::Point(...

用c++ 定义一个圆类,计算圆的面积和周长。 要求:分别用成员函数和友元函...
class Circle { public:Circle():radius(0){} Circle(double r):radius(r){} const double area() const { return M_PI * radius * radius;} const double perimeter() const { return 2 * M_PI * radius;} friend double area(Circle);friend double perimeter(Circle);private:double rad...

c++圆周长面积
定义一个圆类(Circle),私有数据成员为半径(radius)、圆周长和面积,共有成员函数为输入半径;计算周长、面积;输出半径、周长和面积。要求定义构造函数(以半径为参数,缺省值为0,周长和面积在构造函数中生成)和复制构造函数。再主函数中创建2个对象,一个通过构造函数初始化,一个通过复制构造函数...

c++编程: ●实现一个名为circle的简单圆类。数据成员int *itsRadius为...
} void setRadius(int r){itsRadius = &r;} void getArea() { const double pi = 3.14; cout << "Area is:" << pi*(*itsRadius)*(*itsRadius) << "." << endl; } void output() { cout << "Area is:"; getArea(); cout << "Radius is:" << *itsRadius << ...

C++,构造一个圆类Circle,属性为半径radius、求圆周长和面积,实现根据输 ...
double radius;public:Circle(double r=0){ radius=r; } double perimeter(){ return 2*PI*radius; } double area(){ return PI*radius*radius; } };void main(){ double r;cout <<"r=?";cin >>r;Circle c(r);cout <<"perimeter=" <<c.perimeter() <<endl <<"area=" <<c....

用C++面向对象写个球体的类,要调用另外一个Point的类,就是组合类。
class Point { double x,y;public:Point(){ } Point(Point& p)\/\/拷贝构造函数 { this->x=p.x;this->y=p.y;} Point& operator=(const Point& p)\/\/赋值构造函数 { this->x=p.x;this->y=p.y;} Point(double x,double y) \/\/构造函数 { this->x=x;this->y=y;} double ...

用C++定义一个点类Point,由此派生出一个圆类
Point::disp();cout << "\\n圆半径为: " << r << "\\n圆面积为: " << area() << endl;} private:int r;};int main(){ Circle c(2,3,4);c.disp();cout << endl;c.change(10); \/\/ 改变圆的半径 c.set(6,7); \/\/ 改变圆心坐标 c.disp();return 0;} ...

C++知识:定义一个抽象类shape应以计算面积,
class Circle:public Shape \/\/派生类——圆形 { private:double radius; \/\/半径 public:Circle(double r){radius=r;} \/\/构造函数 double Area() \/\/面积计算函数(实现){ s=3.14159*radius*radius;return s;} };class Trapezium:public Shape \/\/派生类——梯形 { private:double top; \/\/...

相似回答