.. _ch12-xt1: 习题1 ======= | 题目要求对例题12.1进行修改,将类的定义写到头文件(后缀为.h),类的成员函数声明部分写到源文件(后缀为.cpp)。 | 所以先打开396页看这道例题 **一般每次的开头都先写的,现在只在main.cpp里写,其他的文件不用写上。** .. code-block:: c++ #include using namespace std; 因为最后其他的文件都得要包含到main函数所在的main.cpp文件里的。 **相当于把以前每一个类的声明,类外成员函数的定义都独立剪切到一个文件里。** 每个派生类都包含它所继承的类,最后在main.cpp文件里只需包含最终的派生类就可以了。 Ponit类 -------- 声明Point类 `````````````` 新建point.h 头文件 .. code-block:: c++ class Point //它是基类,所以不需要包含头文件 { public: Point(double a = 0, double b = 0): x(a), y(b){}; void setPoint(double a, double b) { x = a, y = b;} double getX() const { return x;} double getY() const { return y;} friend ostream & operator << ( ostream &, const Point &); protected: double x; double y; }; 类外定义Point类的成员函数 ````````````````````````````` 新建point.cpp文件 .. code-block:: c++ ostream & operator << ( ostream &output, const Point &p) { output << "(" << p.x <<"," <