使用FLTK& C ++:从现有的“Circle”类中派生出一个新类“Smiley”

时间:2014-11-05 22:15:17

标签: c++ class geometry fltk

我的任务是从一个名为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课程,或者如果这甚至是正确的格式。非常感谢帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

你会将眼睛和嘴和头部一起推到Vector_ref上,然后创建一个绘制vec_ref每个元素的函数。在绘图函数中使用for循环(绘图函数应覆盖Circle中的draw_lines()函数)