您的位置:首页 > 编程语言 > C语言/C++

C++关键字,预处理命令等知识总结

2017-08-14 10:48 176 查看
       在学习的过程中,自己会遇到很多小知识时有一些印象,但却说不出来,原因在于自己没有记牢,因此做个笔记给自己看,很多解释源自网上或者书中。由于很多是自己的项目中遇到的,所以知识点暂时会显得比较无序,后续会慢慢总结补充。

auto类型说明符

auto类型说明符,用它就能让编译器替我们去分析表达式所属的类型,auto让编译器通过初始值来推算变量的类型,显然,auto定义的变量必须有初始值。
auto可以在一条语句中声明多个变量,因为一条声明语句只能有一种基本数据类型,所以该语句中所有变量的初始基本数据类型都必须一样:
auto i = 0, *p = &i; 		//正确
auto sz = 0, pi = 3.14;		//错误


当引用作为auto的初始值时,其实使用的是引用的对象,特别是当引用被用作初始值时,真正参与初始化的其实是引用对象的值。
auto一般会忽略掉顶层const,同时低层const则会保留下来,我的理解是顶层const一般描述的是自身,底层const描述的是其它。

override

override保留字表示当前函数重写了基类的虚函数
在函数比较多的情况下,override可以提醒读者某个函数重写了基类虚函数,表示该函数是从基类继承,不是派生类自己定义
强制编译器检车某个函数是否重写基类虚函数,如果没有则报错。
override是C++保留字,不是关键字,这表明在正确的位置使用时(类的成员函数函数列表后面),override才启到“关键字”作用,其他地方可以作为标示符(如int override是合法的)
此段是摘录自博客http://www.cnblogs.com/kyxyes/p/3995937.html,感谢博主解惑

#pragma once

编译器的预编译命令
在头文件的最开始加上该指令能保证头文件只被编译一次,因为同一头文件会在许多源文件中多次引用。如果没有指定编译一次,则编译时出现重定义错误。

typedef(关键字)

关键字typedef作为声明语句中的基本数据类型的一部分出现,含
4000
有typedef的声明语句定义的不再是变量而是类型别名,和以前的声明语句一样,这里的声明符也可以包含类型修饰,从而也能由基本数据类型构造出符合类型来。
typedef定义的类型别名不可简单替换,如
typedef char *pstring; 		//pstring 是char*的别名
const pstring cstr = 0; 	//cstr 是指向字符型的常量指针
const pstring *ps; 		//ps是一个指针,它的对象是指向char 的常量指针
pstring是指向char的指针,因此const pstring是指向char的常量指针,而非指向常量字符的指针,不可简单替换来理解。
别名声明(alias declaration)
using SI = Sales_item; 		//SI是Sales_item的同义词


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: