模板类中怎么根据实例化的参数不同,进行不同的处理?

模板类中怎么根据实例化的参数不同,进行不同的处理?
template
class Unit
{
private:
int value;
UnitType unit;
TYPE type;
public:
bool operator== (Unit & rht);
Unit operator+ (Unit & rht);
Unit();
Unit(int value, UnitType unit);

};

UnitType是模板参数,我想在成员函数中根据实例化时 UnitType的不同,进行分别处理,应该怎么实现。

 从设计的角度来说,你的设计根本不符合模板语法特性的使用场景,完全属于“给汽车装上抬轿杆”的设计。
正确的做法是使用模板设计模式,将你的需要根据UnitType的不同,进行分别处理的代码分散在不同的实现类中,一个基本的框架代码是:
template <typename UnitType>
abstract class InInitializer<UnitType>
{
public: virtual void foo() = 0;
};
根据不同类型初始化:
比如对于int类型
class InitInInitializer : InInitializer<int>
{
public: void foo() { 你的代码... }
}
...
在主程序中
Unit(int value, UnitType unit, InitInInitializer<UnitType> init)
{
...
init.foo(); // 这样会根据你定义的不同的实现类,自动匹配不同的分别处理的代码
}