关于“ 一个类的对象作为另一个类的成员”,有错误,不明白为啥?
// A.cpp : 定义控制台应用程序的入口点。//
#include "stdafx.h"
#include <iostream>
using namespace std;
class Point
{
private:
int x,y;//私有成员变量坐标
public:
Point();//无参构造函数
Point(int a,int b);//有参
void setXY(int a,int b);
int getX();
int getY();
};
{
}
void Point::setXY(int a,int b)
{ x=a;
y=b;
}
int Point::getX() {return x;}
int Point::getY() {return y;}
class Rectangle
{
private:
Point p1,p2,p3,p4;
public:
Rectangle();
Rectangle(Point one,Point two)
{
p1=one;
p4=two;
init();//调用函数
}
Rectangle(int x1,int y1,int x2,int y2)
{
p1.setXY(x1,y1);
p4.setXY(x2,y2);
init();//调用函数
}
void init()
{
p2.setXY(p4.getX(),p1.getY());
p3.setXY(p1.getX(),p4.getY());
}
void printPoint()//打印四个点的函数
{
cout<<'('<<p1.getX()<<','<<p1.getY()<<')'<<endl;
cout<<'('<<p2.getX()<<','<<p2.getY()<<')'<<endl;
cout<<'('<<p3.getX()<<','<<p3.getY()<<')'<<endl;
cout<<'('<<p4.getX()<<','<<p4.getY()<<')'<<endl;
}
int getArea()//求面积
{
int height,width,area;
height=p1.getY()-p3.getY();//根据4个点坐标值计算长宽值
width=p3.getX()-p4.getX();
area=height*width;
if( area>0)
return area;
else
return -area ;
}
};
int main()
{
Point p1(-15,56),p2(89,-10);
Rectangle r1(p1,p2);//用两个点做参数,声明一个矩形对象r1
Rectangle r2(1,5,5,1);//用两对 坐标点,声明一个矩形对象r2
cout<<"四个点的坐标是:";
r1.printPoint();
cout<<"r1的面积是:"<<r1.getArea()<<endl;//输出两个对象的面积及4个顶点坐标。
cout<<"四个点的坐标是:";
r2.printPoint();
cout<<"r2的面积是:"<<r2.getArea()<<endl;
return 0;
}