写点什么

架构师训练营 作业 3

用户头像
Arthur
关注
发布于: 2020 年 11 月 08 日

2. 请用组合设计模式编写程序,打印输出图 1 的窗口,窗口组件的树结构如图 2 所示,打印输出示例参考图 3。



class WindowForm {public:    WindowForm() {};
virtual void Print() = 0;};
class Picture : public WindowForm {public: Picture(imag) : WindowForm(), imag(imag) {}; void Print() { // Print Logo picture; };
private: imag;};
class Button : public WindowForm {public: Button(std::string label) : WindowForm(), label(label) {}; void Print() { // Print button; }private: std::string label;}
class Frame : public WindowForm {public: Frame() : WindowForm() {};
void AddComponent(WindowForm element) { frameVec.push_back(element); }
void Print() { for (auto &elem : frameVec) { elem.Print(); } }private: std::vector<WindowForm> frameVec;};
class Label : public Frame {public: Label(std::string msg) : Frame(), msg(msg) {}; void Print() { // Print Lable }private: std::string msg;};
class LinkLable : public Label {public: LinkLable(link, std::string msg) : Label(msg), link(link) {}; void Print() { // Print LinkLabel; }
private: link;};
class Box : public Frame {public: Box() : Frame() {} void Print() { // Print box; }};
class TextBox : public Box {public: TextBox(std::string text) : Box(), text(text) {} void Print () { // print TextBox; }private: std::string text;};
class PasswdBox : public Box { PasswdBox() : Box() {}; void Print() { // Print PasswdBox }};
class CheckBox : public Box { CheckBox() : Box() {}; void Print() { // Print CheckBox; }};
复制代码


发布于: 2020 年 11 月 08 日阅读数: 37
用户头像

Arthur

关注

Every Step Counts 2019.12.13 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 作业3