很多时候我们会写出下面这样的代码
template <typename T>
class A
{
public:
A(T _a):m_a(_a){}
void print()
{
cout<<m_a<<endl;
}
T m_a;
};
int main()
{
A<int> aint(20);
A<float> afloat(50);
afloat=aint;
return 0;
}
上面的代码看起来很好,但是却编译不过。问题出在afloat=aint这句,你可能会说,我不要这句,不这么写就完了呗。但是实际问题中,一个int赋值给一个float是显而易见正确和有意义的,所以非常有可能我们恰恰就需要这样的代码,而且它在逻辑上也说得通,这就是模版类不同具现类