| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1198 人关注过本帖
标题:求助!一道小程序
取消只看楼主 加入收藏
crazy23
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-3-4
收藏
 问题点数:0 回复次数:2 
求助!一道小程序

#include "stdafx.h"
#include <iostream.h>
using namespace std;

template <int N>
class A
{
enum
{
result=N+A<N-1>::result
};
};
template<>
class A<0>
{
enum{result=0};
};

int _tmain(int argc, _TCHAR* argv[])
{
printf("%d",A<100>::result);
return 0;
}
这个我是在VS2003下编译的,思想就是这段程序的思想,问题是这些所用到的方法是什么,有点不懂,能解释下吗?说明其作用,还有错哪了?谢谢

搜索更多相关主题的帖子: result int enum 
2007-09-06 22:49
crazy23
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-3-4
收藏
得分:0 
回复:(aipb2007)是个递归吧,这种写法比较少见,我...

template<int N>
class A{
enum {result=N+A<N-1>::result};
};
template<>
class A<0>{

enum{result=0};
};
void main(void)
{
printf("%d",A<100>::result);
}
能不能就是先给我解释一下那枚举,为什么要那么定义呢?还有就是定义一个类,类里面是一个枚举,此时类里面的枚举又怎么是class A{enum {result=N+A<N-1>::result};};这样定义的呢?还有就是下面的class A<0>{enum{result=0};};A<0>这是什么东西呀,再加上这输出printf("%d",A<100>::result);A<100>::result不懂呀!


2007-09-07 07:20
crazy23
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-3-4
收藏
得分:0 

看过了,可是那的内容不多就是为了解决函数重载的问题,其它的就没有什么了


2007-09-07 14:20
快速回复:求助!一道小程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013775 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved