函数前加static关键字作用
1.在类成员函数前加static,此成员函数就成为静态函数,不依赖对象存在。
2.在C语言里面,还有一种就是直接在函数前加static,这样作用就是此函数只能在此文件内可用,不能用于其它文件内。
C++基本的语法部份,基本数据类型、变量声明、变量定义、函数声明、函数定义、关键字等
1.在类成员函数前加static,此成员函数就成为静态函数,不依赖对象存在。
2.在C语言里面,还有一种就是直接在函数前加static,这样作用就是此函数只能在此文件内可用,不能用于其它文件内。
有几个难点,指针:二重指针、一重指针、一维数组
二重指针:它指向的值还是指针
一重指针:它指向的值可以解引用*,得到数值,但一定要知道指针的类型。不然编译器元法知道如何解析的哪段内存。
一维数组:就是一段连续的内存,数组名也是数组头指针。
“=”这个是赋值符号,“==”这个是用来判断相等符号。相信刚学计算机语言时都会有些不习惯。
数学中等号“=”其实有两个意义
alignas关键字用来设置内存中对齐方式,最小是8字节对齐,可以是16,32,64,128等。
test2占用16字节,对齐方式alignas(8)?
test3占用16字节,对齐方式alignas(16)
test4占用32字节,对齐方式alignas(32)
计算方法就是对齐数的整数倍,比如32位对齐,实际数据大小不到32字节,但内存还是占用32字节。实际数据大于32字节小于64字节,内存占用64字节。
计算机系统可能限制数据在内存中的存储方式。例如,一个系统可能要求double值存储在编号为偶数的内存单元中,而另一个系统可能要求其起始地址为8个整数倍。运算符alignof将类型作为参数,并返回一个整数,指出要求的对齐方式。例如,对齐要求可能决定结构中信息的组织方式,以方便用于跨平台编程等。
string>和
在之前写C++代码时,比如声明嵌套模板(vector里面存的还是vector),这时就会有两个尖括号出现。就会与运算符>>搞混,C++要求在声明嵌套模板时使用空格将尖括号分开。
nullptr关键字就是表示空指针的意思,C++11之前空指针都是NULL。已经有了NULL哪为什么还要有nullptr关键字?
nullptr表示空指针,不能转换为整型类型。为了向后兼容,C++11仍允许用0(NULL)来表示空指针。建议使用nullptr而不是0(NULL),因为更高的类型安全。
C++11新增一种函数声明语法,在参数列表后面指定返加类型。double fun1(double , int); //C++11之前函数声明方式
auto fun2(double, int) ->double; //C++11新增函数声明方式
//auto在这里只是占位符,没有其它意义大家看了估计会讲,C++11新增的函数声明方式看起来并不好,还没有之前的直观。哪为什么要新增一种函数声明方式?
不用返回类型后置的例子
先写个返回类型后置的例子,再来讲为什么要这样。