class Screen
{
public:
typedef string::size_type pos;
void some_member() const;
//////////////////
Screen() = default;
Screen(pos ht, pos wt):height(ht), weight(wt), contents(ht*wt, ' ') {}
Screen(pos ht, pos wt, char c) :height(ht), weight(wt), contents(ht*wt, c) {}
////////////////////
char get() const { return contents[cursor];}
inline char get(pos r, pos c) const;
Screen & move(pos r, pos c);
Screen& set(char a);
Screen& set(pos ,pos ,char);
const Screen & display(ostream & os) const;
////////////////////
~Screen();
private:
pos cursor = 0;
pos height = 0, weight = 0;
string contents;
mutable size_t access_ctr;
};
而关于set的实现
inline Screen& Screen::set(pos r, pos c, char a)
{
contents[r * weight + c] = a;
return *this;
}
如果放在cpp文件中会出现链接器出错的问题
放在头文件中,不会报错