模板类的指针问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 09:23:18
我定义了一个内存池模板类MenPool,现在要为三种不同类型数据管理内存:
int //整型
TriNode ///自定义结构
Patch ////自定义类

我想用指针动态为这三种类型声明MenPool实例,问题:
是要声明三种不同类型MenPool指针,还是只声明一种指针就可以?
如下:
1.
MenPool* Pool0;
///我觉得应该是这种方法正确!
///只声明一种指针情况,Pool0=new MenPool<int|TriNode|Patch....>;

2.
MenPool<int>* Pool1;
MenPool<TriNode>* Pool2;
////声明几种不同指针,不知道有没有这样的声明法...哈
////然后分别对应类型实例化!
////Pool1=new MenPool<int>;Pool2=new MenPool<TriNode>...

//先谢了!

要声明三种指针,因为模板与继承不一样,它会为你实例化的三种类型展开成三个类的代码,而这三个类是没有什么关系的。说得好听一点,就是类似于宏的作用,帮你重新把类的代码多写了两次,只不过替换了下类型。所以你还是要声明三种指针。