C++ 11
Nhb2005
这个作者很懒,什么都没留下…
展开
-
using 与 typedef
在C++11 中加入了using 关键词 但是using 和typedef的差距也不是非常明显。typedef 上述办不到 而using可以办到。介绍两种用using的情况。原创 2024-10-05 02:56:47 · 115 阅读 · 0 评论 -
默认模板参数
当所有模板参数都有默认参数时,函数模板的调用如同一个普通函数。但对于类模板而言,哪怕所有参数都有默认参数,在使用时也必须在模板名后跟随<>来实例化。另外:函数模板的默认模板参数在使用规则上和其他的默认参数也有一些不同,它没有必须写在参数表最后的限制。1.只要给 "模板" 传类型 就是按照模版的顺序传 从前往后传。N被赋类型为double T根据99.9自动推导为double。我们只需将N T的位置互换 结果就会正确。原创 2024-10-05 02:39:56 · 125 阅读 · 0 评论 -
final 与 override
override 虚函数重写 目的:提高代码可读性 告诉大家我要重写虚函数 而且如果重写虚函数出现错误(比如 函数名错误 参数错误) 编译器也会报错。用来 阻断继承 和 阻断虚函数继续 “重写” (断子绝孙)原创 2024-10-04 20:15:54 · 62 阅读 · 0 评论 -
declare type -->decltype
常规:1. 表达式为普通变量或者普通表达式或者类表达式,在这种情况下,使用decltype推导出的类型和表达式的类型是一致的。2.表达式是函数调用,使用decltype推导出的类型和函数返回值一致。特殊:当表达式是一个左值 或者 被()包围,使用decltype推导出的是该类型的引用。2.函数的返回值不确定(由于return 的 变量类型不确定)1.容器不确定 --> 迭代器类型的不确定。自动类型推导 decltype。多用于模板中不确定类型的推导。原创 2024-10-04 19:57:01 · 118 阅读 · 0 评论 -
Auto 自动类型推导
当变量不是指针或者引用类型时,推导的结果中不会保留const、volatile关键字。2.函数模板 或 类模板 因函数重载 不确定返回值类型 可以利用 auto 接受。当变量是指针或者引用类型时,推导的结果中会保留const、volatile关键字。auto 的常规推导很简单 除了带有const的特殊情况。引用&符号不会被auto继承继承。3.最适合使用auto的情景。带有const的推导规则。2.不能用auto来定义数组。1.不能用于类内非静态。原创 2024-09-28 18:55:09 · 135 阅读 · 0 评论 -
const 与 constexpr
const int 修饰b b为int类型的常量 因为常量只有在初始化的时候才可以赋值 ---> 也就是可以理解为常量只能赋值一次(而且还得是初始化的时候) ∴ 常量可以在初始化的时候用变量来赋值 让常量等于变量的值 初始化之后就改变不了值了。我们可以为 constexpr 是 const 功能中的一种 (因为编译器无法区分我们使用的 const的功能是哪一种 所以用constexpr关键词连限制)但大多数const都是 修饰常量 的功能。下面讲述const 与 constexpr 的联系。原创 2024-09-28 16:11:20 · 301 阅读 · 0 评论 -
NULL 与 nullptr
传入nullptr会报错 因为 nullptr 为指针类型 并且可以隐式转换为任意指针类型 但是 指针类型无法转换为变量类型 则会报错。nullptr 是 指针类型(可以随意转化成 int *,double * 等等)(只能修饰指针!因为其中NULL的int类型 进行了隐式转换成了int* 类型 从而成功。为什么我们通常 为了避免野指针 用 int* a =NULL 不出错。传NULL时 是会调用void func(int p) 函数的。而如果函数只有传参为int a 的函数时。原创 2024-09-26 22:57:50 · 169 阅读 · 0 评论 -
原始字面量
我们想输出该字符串得到分行的结果时 这个方法会非常的低效(甚至无法实现)语法:R" ( 你想得到的字符串 )"1. 对有两重性的字符串进行唯一化 得到你本身想要得到的字符串。系统会将 在字符串里的 \n \t 自动转化为换行符 制表符。需要 符号 \ 来控制 会导致代码可读性较差。,即只得到字符串内部的数据 而不进行任何的处理。所以C++11推出了一个通用的方法。如果想把字符串的初始化分成多行写。可以将多行的字符串进行初始化。原创 2024-09-26 21:42:12 · 142 阅读 · 0 评论 -
函数指针介绍
/ int (*) (int,int) 为一个函数指针类型 定义func变量。int 代表函数的返回值得是int (double,int)代表函数的参数仅有2个,且类型分别为double 与int。·函数指针 可以理解为用 一个指针 来代替多个 返回值类型相同,参数个数相同,参数类型相同(只有函数名不同的)多个函数名。注:返回值类型相同,参数个数相同,参数类型相同只要有一个与函数指针不相同 都不能用该函数指针。即 int (*) (int,int) == decltype(add)原创 2024-09-26 15:05:04 · 251 阅读 · 0 评论