C++利用多策略类实现多态

多策略类在此
拥有多策略类后,不必使用继承的虚函数机制.来实现多态.代码如下:

#include "多策略.cpp"
构 B{f(){
        打印("啊");
    }
};
构 C{f(){
        打印("哦");
    }
};
构 D{f(){
        打印("D");
    }
};<类 T>概念 有啊=要求(T*t){
    t->f();
};//有概念
#define 鸭动作(S,f)\
    元<类 T>构 S{\
        静 常式 空 动作(T&t){f<T>(t);}\
    };
//用鸭动作来包装函数模板<有啊 T>f(T&t){
    t.f();
}//实现函数接口.
鸭动作(G,f);

空 主(){//B,C,D实现同一个策略
    多策略<B,C,D>a;//挨个构建.
    a.动作<G>();//调用方法.
}

需要个函数模板类模板.高级技巧中,非常需要它:

#define 鸭动作(S,f)\
    元<类 T>构 S{\
        静 常式 空 动作(T&t){f<T>(t);}\
    };

很重要,可自由扩展!

posted @ 2022-02-06 14:53  zjh6  阅读(14)  评论(0)    收藏  举报  来源