static运用案例
都知道static关键字是表示静态的,但有没有想过还可以如何使用static关键字呢?比如有一个这样的需求,就是在代码中有很多处要用到某一个类,但不能在每一次都用new,因为只能有一份这个类。这时用static关键字如何实现
都知道static关键字是表示静态的,但有没有想过还可以如何使用static关键字呢?比如有一个这样的需求,就是在代码中有很多处要用到某一个类,但不能在每一次都用new,因为只能有一份这个类。这时用static关键字如何实现
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字节。
nullptr关键字就是表示空指针的意思,C++11之前空指针都是NULL。已经有了NULL哪为什么还要有nullptr关键字?
nullptr表示空指针,不能转换为整型类型。为了向后兼容,C++11仍允许用0(NULL)来表示空指针。建议使用nullptr而不是0(NULL),因为更高的类型安全。
C++11中对关键字auto进行了重新定义,可以让编译器根据初始值类型自动推断变量的类型。auto a? = 0;? ?//推断出a类型为int
atuo b = 0.0; ?//推断出b类型doublu
auto c = ‘A’; ?//推断出c类型是char如果不知道为什么能自动推断出来可以看下:常量类型? ? ?和? ?C++常量类型?获取上面写的都是推断基本类型,当然C++11 auto关键字并非只样简单的运用,更多的是为了自定义类型推断。相信很多人在写迭代器时会很头痛,太长了。先个vector
关键字void 用来表示一个函数不返回任何值,或者普通变量能指向任何类型的数据. Void 也能用来声明一个空参数表.
关键字 while 用于一个只要条件未真就执行statement-list的循环体.注意假如起始条件为false,statement-list 将不被执行. (你可以用一个do循环来保证statement-list至少被执行一次.) 例如:
假设要解决输出Ascii码的符号一一对应的十进制数字。
应该大家都会想到说,类似这样.
char c = ‘A’;
cout<
关键字volatile在描述变量时使用,阻止编译器优化那些以valatile修饰的变量,volatile被用在一些变量能被意外方式改变的地方,例如:抛出中断,这些变量若无volatile可能会和编译器执行的优化 相冲突.
关键字virtual 能用来创建虚函数,派生类可以不重写此函数.但是假如函数被作为一个纯的虚函数 (被=0表示)时, 这种情况一定要重写此函数,不然无法构造对象,变成抽象类。