首页 > 学院 > 开发设计 > 正文

对类的包装尝试

2019-11-11 05:22:03
字体:
来源:转载
供稿:网友

 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

类的包装尝试:

把检查与检查非包装出来,组合满足业务需求就比较方便了。

1. 检查某容器包含0

2. 不满足时

...

// 检查容器中元素是否满足某种条件template <typename T>bool Check(T& container){    if (container.IsSatify())    {        return true;    }    return false;};// 基类:提供检查接口class CCheckPRoc{public:    CCheckProc():m_pParent(nullptr){};    CCheckProc(CCheckProc& proc):m_pParent(&proc){};    virtual bool IsSatify() = 0;protected:    CIndexProc* m_pParent;};// 继承类:提供检查包含0的接口template <typename T>class CIncludeZero : public CCheckProc{public:    CIncludeZero(T& container):m_pContainer(&container)    {};    virtual bool IsSatify()    {        return m_pContainer->contains(0);    };private:    T* m_pContainer;};// 继承类:提供检查非的操作class CNotIn : public CCheckProc{public:    CNotIn(CCheckProc& proc):CCheckProc(proc){}    virtual bool IsSatify(int nIndex)    {        return !m_pParent->IsSatify(nIndex);    };};// 实例化函数,提供给外部使用bool IncludeZero(QList<int>& indexs ){    return Check(n, CIncludeZero<QList<int>>(indexs));}bool NotIncludedZero(QList<int>& indexs){    return Check(n, CNotIn(CIncludeZero<QList<int>>(indexs)));}

 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表