我的任务是从一个名为Circle的现有类派生一个名为Smiley的新类。我正在使用FLTK& C ++。
圈子是:
struct Circle : Shape {
Circle(Point p, int rr) // center and radius
:r(rr) { add(Point(p.x-r,p.y-r)); }
void draw_lines() const;
Point center() const;
void set_radius(int rr) { set_point(0,Point(center().x-rr,center().y-rr)); r=rr; }
int radius() const { return r; }
private:
int r;
};
(add
方法是一种免费方法,不属于Circle)
到目前为止我为Smiley创作的是
class Smiley : public Circle {
public:
Smiley (Point p, int r) : Circle (a, r){
return;
}
};
我正在试图弄清楚如何添加圆形眼睛和半圆形嘴。我对眼睛应该是什么样子有一个非常含糊的想法
Circle left_eye(Point(p.x - (r/3), p.y - (r/3)), (r/8)); //left eye
Circle right_eye(Point(p.x + (r/3), p.y - (r/3)), (r/8)); //right eye
但我甚至不知道如何将它纳入我的Smiley课程,或者如果这甚至是正确的格式。非常感谢帮助,谢谢。
答案 0 :(得分:0)
你会将眼睛和嘴和头部一起推到Vector_ref上,然后创建一个绘制vec_ref每个元素的函数。在绘图函数中使用for循环(绘图函数应覆盖Circle中的draw_lines()函数)