随笔分类 -  编程语言 / C++ / modern C++

讲解一些现代C++的特性和语法
摘要:将类型名作为强制转换的语法是C语言保留下来的,C++有自己独有的类型转换,就是四种cast。 它们都有着统一的语法,即`xx_cast(expression)`,可以将expression转换成typename的类型。 # static_cast 顾名思义,静态转换,通常用于内置类型的转换。但是不能 阅读全文
posted @ 2023-07-20 23:49 烤肉kr 阅读(42) 评论(0) 推荐(0) 编辑
摘要:智能指针是C++11引入的,比裸指针更为强大的指针。主要作用是用来完成一定程度上的内存资源管理自动化。 # unique_ptr `unique_ptr`实现专属所有权功能。`unique_ptr`不允许拷贝,只允许移动,保证了没有其他的指针指向`unique_ptr`指向的对象。`unique_p 阅读全文
posted @ 2023-07-20 18:55 烤肉kr 阅读(12) 评论(0) 推荐(0) 编辑
摘要:# 声明强化 在C++17之后,if语句可以像for循环语句一样,在括号里声明一个变量了。 ```cpp if (int x = 5; x data; Test(std::initializer_list list) { for (auto itr = list.begin(); itr != li 阅读全文
posted @ 2023-06-24 22:21 烤肉kr 阅读(9) 评论(0) 推荐(0) 编辑
摘要:# 简介 `constexpr`是C++11引入的关键字。它的意思是常量表达式,但是与之前的常量`const`不同,`constexpr`会在编译期就计算完该值,从而提高了性能。同时`constexpr`也可以用来修饰函数、类的构造函数等,不止是变量。 # 适用于`constexpr`的类型 根据微 阅读全文
posted @ 2023-06-23 14:43 烤肉kr 阅读(574) 评论(0) 推荐(0) 编辑
摘要:# NULL是什么 `NULL`是C++中的一个挺有意思的常量,在我接触的编译器里,它的定义通常都是0。据说也有编译器会将其定义为`((void*)0)`。 `NULL`,一般我们都将其解释为空,比如指针没有指向的对象,此时指针的值通常就会被赋为`NULL`。那其实大多情况下,我们都是更加偏向于认为 阅读全文
posted @ 2023-06-17 21:16 烤肉kr 阅读(85) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示