类模板实例化时必须指明变量类型 函数模板可以通过传入的参数自动推导 不需要自己写出类型吗
时间: 2023-10-04 07:04:47 浏览: 76
是的,当使用类模板时,必须在实例化类的时候指明模板参数的类型。例如,如果有一个名为 `MyClass` 的类模板,它有一个模板参数 `T`,那么在使用 `MyClass` 的时候,需要指定 `T` 的类型,例如 `MyClass<int>` 或 `MyClass<double>`。
而对于函数模板,可以通过传入的参数来自动推导出模板参数的类型,不需要手动指定。例如,如果有一个名为 `myFunction` 的函数模板,它有一个模板参数 `T`,那么在使用 `myFunction` 的时候,可以直接传入参数,例如 `myFunction(42)`,编译器会自动推导出 `T` 的类型为 `int`。
需要注意的是,在某些情况下,编译器可能无法自动推导出模板参数的类型,这时需要手动指定模板参数的类型。例如,当传入的参数类型不明确时,编译器无法自动推导出模板参数的类型。此时,需要手动指定模板参数的类型。
阅读全文