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