类模版问题
各位朋友:
我又几个关于类模版的问题,如下。
首先,问一个比较菜的问题,类模版实例化之后的名称应该与模版参数有一定关系吧,比如:
template <class TYPE>
class a{};
那么“a<int>”实例化出一个类实例的名称应该不再是"a"了吧,是不是应该是a_int之类的东西啊?
其次,如果模版参数在类的定义中根本没有用到,那么在实例化时是否应该只有一份实例,如:
template <class TYPE> //类型TYPE在下面的类定义中根本没用到
class foo{
public:
int count;
};
在实例化此模版类时,无论写了多少个“foo<class1>,foo<class2>...”,但是最终只能有一个实例(我自己的理解),我说的对么?如果正确,那这个唯一的类实例的名字应该是什么,应该与TYPE没关系了吧?
我又在一些书上看到一些程序,这些程序隐含的意思是:如果类中有static data members,那么像上面那样的类就会有多个实例(即使类型参数在类体中还是没有用到),即:
template <class TYPE> //类型TYPE在下面的类定义中还是没用到
class foo1{
public:
static int count;//此次为static数据成员
};
对于foo1而言,如果再有多个“foo1<class1>,foo<class2>...”定义,那么就会产生相应数量的类实例,因为要保证static data member的独立性(我自己的理解),我的想法对么?
问题点数:50、回复次数:3Top
1 楼zzw820626(偶要分,偶要星星)回复于 2006-03-03 11:22:57 得分 17
我想是这样子的:
template <class TYPE> //类型TYPE在下面的类定义中根本没用到
class foo{
public:
int count;
};
foo<class1>,foo<class2>是两个不同的类型,不管TYPE是否用到了。
关于“实例”这个说法不太好吧Top
2 楼piaochen_2002(执子之手,与子偕老!)回复于 2006-03-03 11:35:52 得分 17
static 成员和类的实例是没有关系的,对于不同的类实例只是解释的代码不一样!!Top
3 楼OOPhaisky(异化$渴望成功~~)回复于 2006-07-02 19:59:41 得分 16
建议楼主看看<<C++ templates>>,这是一本讲模板的不错的好书!!!Top




