您的位置:首页 > 娱乐 > 八卦 > 【C++新特性——using】

【C++新特性——using】

2024/10/4 0:56:45 来源:https://blog.csdn.net/2301_76758064/article/details/140542428  浏览:    关键词:【C++新特性——using】

1typedef&using 类型定义别名

#include<iostream>
using namespace std;void f(int index)  //事例函数指针
{cout << "void f(int)->" << index << endl;}int main()
{//typedef:  旧名  新名typedef unsigned int x;    //using:    新名=旧名using y = unsigned int;//函数指针拉开二者区别void(*i)(int) = f;    //最原始的函数指针typedef void(*x2)(int);     //不熟悉typedef和函数指针的看不出来x2是别名using y2 = void(*)(int);    //这个就非常简单明了y2就是别名return 0;
}

2模板定义别名

#include<iostream>
#include<vector>
#include<map>
using namespace std;template<typename T = int>
//typedef vector<T> k;   //报错    typedef做不到class base {  //正确:typedef需要一个类辅助
public:typedef vector<T> k;  };template<typename T = int>
using t = vector<T>;
int main()
{	t<> x = { 1,1,1,1 };for (auto i : x)cout << i << " ";base<>::k y = { 2,2,2,2 };return 0;
}

最后在强调一点:using语法和typedef一样,并不会创建出新的类型,它们只是给某些类型定义了新的别名。using相较于typedef的优势在于定义函数指针别名时看起来更加直观,并且可以给模板定义别名。

using的使用 | 爱编程的大丙

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com