4-35 首先定义一个类Point,然后定义类 Point 的派生类 CLine。两个类都有表示坐标 的数据成员,要求有对应的设置和获取数据 成员的成员函数。
时间: 2024-02-15 16:04:59 浏览: 71
好的,下面是 C++ 代码实现:
```
class Point {
public:
Point() : x(0), y(0) {}
Point(int x_, int y_) : x(x_), y(y_) {}
void setX(int x_) { x = x_; }
void setY(int y_) { y = y_; }
int getX() const { return x; }
int getY() const { return y; }
private:
int x, y;
};
class CLine : public Point {
public:
CLine() : Point(), x2(0), y2(0) {}
CLine(int x1_, int y1_, int x2_, int y2_) : Point(x1_, y1_), x2(x2_), y2(y2_) {}
void setX2(int x2_) { x2 = x2_; }
void setY2(int y2_) { y2 = y2_; }
int getX2() const { return x2; }
int getY2() const { return y2; }
private:
int x2, y2;
};
```
这里我们定义了一个 Point 类来表示一个点,它有两个私有成员变量 x 和 y,以及四个公有成员函数:setX、setY、getX 和 getY,用于设置和获取坐标。
然后我们定义了一个 CLine 类,它是 Point 类的派生类。它除了继承了 Point 类的 x 和 y 成员变量和 setX、setY、getX 和 getY 函数外,还有 x2 和 y2 成员变量,表示线段的另一个端点的坐标。它也有对应的设置和获取坐标的成员函数 setX2、setY2、getX2 和 getY2。
注意,这里我们使用了初始化列表来初始化成员变量。这样做可以提高代码的效率,因为初始化列表会直接初始化成员变量,避免了先调用默认构造函数再赋值的过程。
阅读全文