1 template< int N, int Num >
2 class PowN
3 {
4 public:
5 enum
6 {
7 result = Num * PowN<N - 1, Num>::result,
8 };
9 };
10
11 template<int Num>
12 class PowN<0, Num> // 注意这里的特化方式
13 {
14 public:
15 enum
16 {
17 result = 1,
18 };
19 };
20
21 // test case: 求3的平方
22 int main()
23 {
24 std::cout<<"PowN<2, 3>::result"<< PowN<2, 3>::result << std::endl;
25 // 但是如果用变量作为模板参数的话,必须声明成常量
const int n = 3;
const int num = 10;
std::cout<<"PowN<n, num>::result"<< PowN<n, num>::result << std::endl;
26 return 0;
27 }
28
posted on 2006-10-26 15:36
七星重剑 阅读(1188)
评论(1) 编辑 收藏 引用 所属分类:
PL--c/c++