使用类的组合(线段Line类中包含点Point类成员):
#include
#include
using namespace std;
//Point类的定义
class Point {
public:
Point(int xx = 0, int yy = 0) {//构造函数定义了,类外无需实现
x = xx;
y = yy;
}
Point(Point &p);//复制构造函数声明
int getX() { return x; }//成员函数
int getY() { return y; }//成员函数
private:
int x, y;
};
Point::Point(Point &p) { //复制构造函数的实现
x = p.x;
y = p.y;
cout << "Calling the copy constructor of Point" << endl;
}
//类的组合
class Line { //Line类的定义
public:
Line(Point xp1, Point xp2);//组合类Line的构造函数的声明(这里只有对象(Point类对象)成员所需的形参,无本类成员所需的形参)
Line(Line &l);//复制构造函数声明
double getLen() { return len; }//成员函数
private://私有成员当中,有两个Point类的对象成员p1,p2