设计一个矩形类(Rect),具有长宽属性,类还具有求解并显示矩形的周长和面积的功能以及求两个矩形面积和的功能。(实现该功能时要求用对象做参数和返回值。)RT下面是我编的代码出现如下错误:
请指出并帮忙修改谢谢。代码如下:
#include "iostream.h"
#include"math.h"
class Rect
{
private:
double x,y,c,s;
public:
Rect(double x1,double y1)
{
x=x1;y=y1;
}
Rect(Rect &p)
{
x=p.x;y=p.y;
}
double length()
{
return(x+y);
}
double area()
{
return x*y;
}
void print()
{
cout<<"周长:"<<length()<<endl;
cout<<"面积:"<<area()<<endl;
}
Rect count(Rect p1,Rect p2)
{
return (p1.area()+p2.area());
}
}
void main()
{
Rect p1(3,4),p2(5,6),p;
p1.print();
p2.print();
p=count(p1,p2);
Rect p3(p);
p3.print();
}
改了下代码如下:
#include "iostream.h"
#include"math.h"
class Rect
{
private:
double x,y,c,s;
public:
Rect(){}
Rect(double x1,double y1)
{
x=x1;y=y1;
}
Rect(Rect &p)
{
x=p.x;y=p.y;
}
double length()
{
return(x+y);
}
double area()
{
return x*y;
}
void print()
{
cout<<"周长:"<<length()<<endl;
cout<<"面积:"<<area()<<endl;
}
void count(Rect p1,Rect p2)
{
cout<<"两个矩形的面积为:"<<(p1.area()+p2.area())<<endl;
}
};
void main()
{
Rect p1(3,4),p2(5,6),p;
p1.print();
p2.print();
p.count(p1,p2);
}
1. class Rect 定义的最后添加一个 ;
2. 为Rect添加一个无参数的默认构造函数,或者改造现有的的构造函数使用默认参数。
Rect(double x1=0.0, double y1=0.0) { x=x1; y=y1; }
3. 将 count 函数写成全局的(放在class Rect定义的外面),调用方法不变。
或者作为Rect的类方法(函数定义的前面加一个static),调用的时候用 Rect::count(p1, p2);
4. 可以忽略。