BetterMUD学习心得1

来源:互联网 发布:js中 符号代表什么 编辑:程序博客网 时间:2024/06/12 05:46



void SetDescription(const std::string& p_desc){ m_description = p_desc; }

  //string& 这样不仅不用构造对象副本,也可以保证对象不被修改。

 

class HasRegion
 {
 public:
  HasRegion() :m_region(0){}
  entityid Region()const{ return m_region; }
  void SetRegion(entityid p_region){ m_region = p_region; }
 protected:
  entityid m_region;
 };

//把这种Has的关系也抽象成类。


typedef std::set<entityid> characters;

//set是已排序的容器。为了快速检索。


//如何封装一个set类:

 class HasCharacters
 {
 public:
  typedef std::set<entityid> characters;
  typedef items::iterator itemitr;
  void AddItem(entityid p_id){ m_items.insert(p_id); }
  void DelItem(entityid p_id){ m_items.erase(p_id); }
  itemitr ItemsBegin(){ return m_items.begin(); }
  itemitr ItemsEnd(){ return m_items.end(); }
  size_t Items(){ return m_items.size(); }
 protected:
  items m_items;
 };


//重载operator()的用法

//定义时

struct stringmatchfull
{

...

 bool operator()(const std::string& p_name)
 {
  return search == BasicLib::LowerCase(p_name);
 }

};

//使用时

 stringmatchfull a("hehe");
 cout << "The result is " << a("haha") << endl;

//不是a.("haha")

0 0
原创粉丝点击