一个关于C++中类模板的问题

2025-03-01 12:32:54
推荐回答(4个)
回答1:

不同的类,Compare会被编译为:
Compare_int_ //一种理解了,不同的编译器会被编译为不同的名字.
编译后可见二者是不同的类实例:
Compare_int_
Compare_double_

回答2:

两个对象的类名不同的。一个是int,一个是double
这个例子或许不明显,比如你定义的是两个类,Teacher 和student,用在模板类定义俩obj1和obj2,这就显然了吧
Compare obj1(4,7);
Compare obj2(1.2, 2.6);
它们所拥有的函数有明显的差别

回答3:

所以才叫摸板,你给出一个Compare obj1(4,7); 编译器就生成一个类,其实你可以理解为类的重载。也所以这会产生代码膨胀,必须用专门化来防止。

回答4:

回答得很好哦,我再加点:
也因为会在编译期进行实例化,所以通过模板,我们能在编译期计算一些事情.提高运行速度.