判断是否为可行状态的函数接口则很好定义了:它接受一个const State型引用作为待判断的状态,返回bool值,其中true表示该状态为可行状态,false表示该状态不是可行状态。 我们将跳转函数以及判断函数的函数指针类型分别定义为StateJumper及Matcher,由于用户可能也会用到这些函数指针类型,我们将定义加到public域中: public: typedef bool (*StateJumper)(State&); typedef bool (*Matcher)(const State&); // others... 并且,在private域中相应加上StateJumper和Matcher的函数指针变量,存储用户提供的相应函数的地址: private: // others... StateJumper Jumper; Matcher IsMatch; 相应地,内联定义公有成员函数: void setJumper(const StateJumper j) { Jumper = j; } void setMatcher(const Matcher m) { IsMatch = m; } 分别用于设置Jumper和IsMatch的函数指针值。 现在所有的成员变量都已经浮出水面,我们可以定义构造函数和析够函数了,我们不打算对WalkThrough的创建与继承等方面作限制,因此它们都加在public域中。先看构造函数,有必要定义一个默认构造函数: WalkThrough(): overFlag(false), Jumper(0), IsMatch(0) { }
|
正在阅读:经验分享:闲谈C++算法封装之穷举法经验分享:闲谈C++算法封装之穷举法
2004-03-26 10:05
出处:CSDN
责任编辑:linjixiong
键盘也能翻页,试试“← →”键