C++屏幕类,矩形类,圆类小练习

1

增强Screen类,使之在程序中只能生成一个实例 增强MyRectangle类,添加颜色信息 创建MyCircle类 在main函数中创建类的实例。(20分)

题目内容:

修改Screen类:

  1. 在Screen类中,将保存屏幕宽和高的数据域成员改为 static int 类型。

  2. 在Screen类中,添加两个 string 类型的数据成员 enter 和 leave,并在构造函数中将他们分别初始化为字符串“enter screen”和“leave screen”

  3. 在Screen类中,增加一个 Screen* 类型的静态的私有数据成员 instance;

  4. 在Screen类中,增加一个静态公有的 getInstance(int width, int height) 函数,该函数返回instance的值。两个参数均带有默认值,分别为 640 和 480

  5. 在getInstance函数中,判断instance的值,若为0,则设置屏幕的高和宽,然后创建一个存放在堆区的Screen对象,将地址保存在instance中;若instance的值不为0,则返回instance的值

  6. 在getInstance函数中,如果需要创建Screen对象,则校验宽和高的值;如果宽与高超过1000,或者其它不合理的设置则用cout输出“invalid screen size”,然后结束程序

  7. 在Screen类中,添加一个deleteInstance()函数(函数类型自行根据main()中的代码确定),将getInstance()函数中申请的内存归还给操作系统。

  8. 在Screen类中,添加一个拷贝构造函数;

  9. Screen类的默认构造函数将屏幕宽和高分别设置为640和480

  10. Screen类的所有构造函数均应输出字符串enter的内容并换行

  11. 为screen类添加析构函数,在其中应输出字符串leave的内容并换行

  12. 删除Screen类中的带参构造函数

  13. 将Screen类中所有的构造函数都变成 private 成员

  14. 如有必要,则增加或者修改其他数据成员及函数成员,例如数据域成员的getter与setter函数

  15. 不要忘记在类外对Screen类的所有静态成员进行初始化,否则编译器会报告链接出错。

 

 

  • 补充说明:现在的Screen类使用了一种【设计模式】,叫做“单例模式”,可以保证在这个程序中只会有一个Screen的实例。

 

修改MyRectangle类:

  1. 在MyRectangle类中,增加表示颜色的数据域成员;

  2. 在MyRectangle类中,增加函数 setColor(int R, int G, int B);该函数接收三个参数,代表颜色中的Red、Green、Blue分量的大小,该函数将颜色保存在类的数据域成员中。

  3. MyRectangle类的构造函数1接受4个整型参数

  4. 按照顺序&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值