初学C++

这是网易云课堂C++学习的第五单元作业,玩了一周,错过作业提交时间,没有测试,但做的时候还是发现不少问题
#include<string>
#include<cstdlib>
#include<iostream>
#include<string>
using std::string;
class Screen
{
public:
	 Screen(int width,int height):enter("enter screen"),leave("leave screen")//使用参数列表初始化类中其他类的对象
	{
		setWidth(width);
		setHeight(height);
		std::cout<<enter<<std::endl;
	};

	void setWidth(int width)
	{
		Screen::width=width;
		exitWhenInvalidScreen(width, 600);
	}
	void setHeight(int height)
	{
		Screen::height=height;
		exitWhenInvalidScreen(600, height);
	}
	int getWidth()
	{
		return width;
	}
	int getHeight()
	{
		return height;
	}

	static Screen* getInstance(int width=640, int height=480)
	{
		if(instance==0)
		{
			instance=new Screen(width,height);
		}
		return instance;
	}
	 
private:
	int width;
	int height;
    string enter;
	string leave;
	static Screen* instance;
	void exitWhenInvalidScreen(int width,int height)
	{
		while(width<0||width>1000||height<0||height>1000)
		{
			std::cout<<"invalid screen size";
			exit(0);
		}
	}
};
	Screen* Screen::instance=0;
int main()
{
	int width, height;
    Screen *screen1, *screen2;
     
    std::cin >> width >> height;
       
    screen1 = Screen::getInstance(width, height);
    screen2 = Screen::getInstance();
       
    std::cout << screen1->getWidth() << ' ' << screen1->getHeight() << std::endl;
    std::cout << screen2->getWidth() << ' ' << screen2->getHeight();
       
    #ifdef DEBUG
        std::cin.get();
    #endif
    return 0;
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值