#include <iostream> #include <string> using namespace std; class Screen { public: typedef string::size_type index; char get() const{return contents[cursor];} inline char get(index ht,index wd) const; index get_cursor() const; Screen (index hght,index wdth,const string &cntnts); // Screen& display(std::ostream &os){do_display(os);return *this; } const Screen& display(std::ostream &os) const{ do_display(os); return *this;} //三个成员函数 Screen& move(index r,index c); Screen& set(char); Screen& display(ostream &os); private: std::string contents; index cursor; index height,width; void do_display(std::ostream &os) const {os<<contents;} }; /// int main(){ Screen myScreen(5,5,"aaaaaaaaaaaaaaaa/naaaaaaaaaaaaaa/naaaaaaaaaaaaaaa/naaaaaaaaaa/n"); myScreen.move(4,0).set('#').display(cout); return 0; } // //下面是类的实现部分 // char Screen::get( index r,index c ) const { index row=r*width; return contents[row+c]; } inline Screen::index Screen::get_cursor() const { return cursor; } Screen& Screen::set( char c ) { contents[cursor]=c; return *this; } Screen& Screen::display( ostream &os ) { os<<contents; return *this; } Screen& Screen::move( index r,index c ) { index row=r*width; cursor=row+c; return *this; } Screen::Screen( index hght,index wdth,const string &cntnts ): contents(cntnts),cursor(0),height(hght),width(wdth) {}
C++ primer 习题练习:12.13
最新推荐文章于 2024-08-22 17:47:37 发布