类的组合
- 网上听课,讲的有点朦胧,代码又不全面.....觉得有点云里雾里,就从按一段段自己码加修改,码了一个计算两个点距离的组合
#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,并无多大区别。