一个关于模板的问题

为什么不把某个类模板的显示具体化(explicit specialization)直接写成一个普通的类,事实是,这完全可以用一个同名的普通类代替之!比如有这样一个类模板:
template<typename T>
class A
{private: T s;
};
这个类模板的显示具体化是:
template< >class A<int>{ };
事实是,这个显示具体化就是
class A
{private :int s;
};
为什么不直接这样写呢?为什么会画蛇添足一个显示具体化?!!

如果在理论上,别人调用的时候是可以调用到这个属性的
class A
{private :int s;
};
但在实际上如果像上边那样写别人是不能调用的
只有
template< >class A<int>{ };
这样写别人才可以调用的到

希望能帮到你!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-16
如果你认为这样写更好的话那就这样写撒本回答被网友采纳