练习7.32代码
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Screen;
class Window_mgr;
class Screen{
public:
friend class Window_mgr;
typedef string::size_type pos;
//构造函数
Screen() = default;
Screen(pos h, pos w) :height(h), width(w), contents(5, ' '){}
Screen(pos h, pos w, char c) :height(h), width(w), contents(h*w, c){}
//成员函数
Screen &move(pos r, pos c);
char get() const { return contents[cursor]; }
char get(pos ht, pos wd) const;
Screen &set(char);
Screen &set(pos, pos, char);
Screen &display(ostream &os)
{
do_display(os); return *this;
}
const Screen &display(ostream &os) const
{
do_display(os); return *this;
}
private:
pos cursor = 0;
pos height = 0, width = 0;
string contents;
void do_display(ostream &os) const { os << contents; }
};
Screen& Screen::move(pos r, pos c){
pos row = r*width;
cursor = row + c;
return *this;
}
inline ch