在實作一個
功能
時,通過定制不同
政策
來提供不同功能.本來是
F
中的
f
,但我們不用
λ
,
λ
太難看.
我們把
λ
放進
構
裡面包裝,然後取個
名字
,以後就可以直接用了,是以這個
構名
就是個
政策
名字.
如下,1是概念,2是基本功能:
元<類 T>概念 可分塊=要求(T&a,串&b){a.分開(b);};
元<可分塊 T>構 分塊基{
空 分(){//動作,要調用.
...//前面
如(T::分開(c)){//這是政策類
動作(c);
}
...//後面實作.
}
};
然後實作
政策
:
構 前杠分{
極 分開(串&a){中(全為符非空(a,'-'));}
};
元<符 C,整 I>構 重複分{
極 分開(串&a){靜 串 e=重複(C,I);中 a==e;}
};
//等等,類似政策
這裡面,就可以隻用
政策類
與
基類
進行組合,來達到
實作
功能的目的.而且
政策類
還沒有限制,依然可以是
模闆
.這比用
繼承
友善多了.
如果是繼承,你要這樣:
元<類 T>構 分塊基:公 T{
...
}
構 前杠分:公 分塊基<前杠分>{//這樣
極 分開(串&a){中(全為符非空(a,'-'));}
};