Avatar ·

C++中typedef和using的区别是什么?该选哪个?

大家好!我正在学习C++,遇到了两种创建类型别名的方法:老式的`typedef`和C++11中新的`using`。它们似乎做同样的事情,但我听说`using`更受推荐。能解释一下它们本质上的区别吗? 这是一个使用`typedef`的简单例子: ```cpp typedef unsigned long ulong; typedef int (*func_ptr)(double, char); typedef std::vector int_vector; ``` 而使用`using`的相同例子: ```cpp using ulong = unsigned long; using func_ptr = int(*)(double, char); using int_vector = std::vector; ``` 从语法上看,`typedef`对我来说更令人困惑,尤其是对于函数指针。但有没有功能上的区别?例如,我听说`using`可以用于模板,而`typedef`不行。能举一些`using`胜出的例子吗?在新代码中是否还应该使用`typedef`?提前谢谢! <<>>

主要区别:模板别名

最重要且最根本的