c++学习记录
2021/11/27 20:40:45
本文主要是介绍c++学习记录,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
学习过程记录
文章目录
- constexpr和const
- 起别名
- decltype
constexpr和const
constexper是一个在编译的过程中就可以得到计算结果的常量
constexpr int sz = size();
当使用函数作为constexpr的初始值的时候,不能使用普通函数,同样需要定义constexpr的函数。需要按下面去定义,不然就会报错。
constexpr int size(void) { return 5; }
在constexpr声明中如果定义了一个指针,限定符constexpr仅对指针有效,对指针所指的对象无关。
const int *p = nullptr;//指向整型常量 constexpr int *p = nullptr;//指向整数常量
起别名
起别名之前我没见到过,这里r相当于a。
&r = a;
decltype
有时会遇到这种情况:希望从表达式的类型推断出要定义的变量的类型,但是不想用该表达式的值初始化变量。为了满足这一要求,C++11 新标准引入了第二种类型说明符decltype,它的作用是选择并返回操作数的数据类型。在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值:
const int ci = 0, &cj = ci; decltype (ci) x = 0;//x的类型是const int decltype(cj)y = x;//y的类型是const int&,y绑定到变量x decltype(cj) z;//错误:z是一个引用,必须初始化
声明指针的时候必须初始化,因为是 int & 类型。
//decltype的结果可以是引用类型 int i = 42,*p = &i, &r = i; decltype(r + 0) b;//正确:加法的结果是int,因此b是一个(未初始化的)int decltype (*p) c;//错误:c是int&,必须初始化
生活总会有不如意,坚持就好了。继续加油吧。
这篇关于c++学习记录的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享