类的组合

类的组合

  • 网上听课,讲的有点朦胧,代码又不全面.....觉得有点云里雾里,就从按一段段自己码加修改,码了一个计算两个点距离的组合
#include<iostream>
#include<cmath>
using namespace std;
class Piont{
	public :
		Piont();//默认构造函数
		Piont(int x,int y);//构造函数
		Piont(const Piont&);//复制构造函数
		~Piont();//析构函数,目前没什么鸟用...
		int getX();//获得对象内部的X
		int getY();//获得对象内部的Y
	private :
		int X,Y;
};
Piont::Piont(int x,int y):X(x),Y(y){
}
Piont::Piont():Piont(0,0){
}
Piont::Piont(const Piont &p)
{
	X=p.X;
	Y=p.Y;
}
Piont::~Piont(){
}
int Piont::getX()
{
	return X;
}
int  Piont::getY()
{
	return Y;
}
class Line{
	public :
		Line(Piont pstart,Piont pend);//构造函数,参数为两个对象
		double getLength();//求两点之间的距离
	private :
		Piont start,end;
};
Line::Line(Piont pstart,Piont pend):start(pstart),end(pend){
}
double Line::getLength()
{
	double length,newX,newY;
	newX=fabs(start.getX()-end.getX());
	newY=fabs(start.getY()-end.getY());
	length=sqrt(pow(newX,2)+pow(newY,2));
    return length;
}
int main()
{
	Piont p1,p2(3,4),p3(5,6);
	Line line1(p1,p2),line2(p2,p3);
	cout<<"p1的属性为:X="<<p1.getX()<<"Y="<<p1.getY()<<endl;
	cout<<"p2的属性为:X="<<p2.getX()<<"Y="<<p2.getY()<<endl;
	cout<<"line1的长度为:"<<line1.getLength()<<endl;
	cout<<"p2的属性为:X="<<p2.getX()<<"Y="<<p2.getY()<<endl;
	cout<<"p3的属性为:X="<<p3.getX()<<"Y="<<p3.getY()<<endl;
	cout<<"line2的长度为:"<<line2.getLength()<<endl;
	return 0;
}

其实也就是之前类里面的int,double成员换成class,并无多大区别。

posted @ 2018-03-26 20:58  flyingbrid  阅读(124)  评论(4编辑  收藏  举报