面试题答案
一键面试- 调用的函数:会调用
template <typename T> void func(T* t)
这个函数。 - 原因:
- 当调用
func(&10)
时,&10
是一个指向int
类型常量10
的指针。 - C++ 模板函数匹配规则中,会优先选择更特化的模板。
template <typename T> void func(T* t)
专门针对指针类型进行了特化,相比通用模板template <typename T> void func(T t)
,它与传入的指针参数&10
匹配度更高。所以编译器会选择这个针对指针类型的特化模板函数进行调用。
- 当调用