为什么允许使用与函数模板同名的普通函数?但是,不允许使用与类模板同名的普通类。
PackageReference
答案 0 :(得分:3)
类不能超载,只能运行。如果你想"过载"一个类,然后使用模板专业化:
// The generic class
template<typename T>
class A {};
// Specialization for int
template<>
class A<int> {};
// Specialization for std::string
template<>
class A<std::string> {};
// ...
A<int> my_int_a; // Uses the A<int> specialization
A<float> my_float_a; // Uses the generic A<T>