声明和定义,const,enum,头文件

1.
声明:extern i;
2.
将循环边界用一个变量标志,方便修改,使用const限定符,
const int buf_size = 100;
3.
const定义的变量默认是局部变量,不能被其他文件访问,
如有需要,extern const int i;
非const 变量默认为extern,若const变量需要被其他文件访问,
需要加上extern限定
4.
引用必须用与该引用类型相同的变量来进行初始化
error:int &refer;
error:int &refer = 10;
5.
const 引用是指对const对象的引用
const int a = 1023;
const int& b = a;//不能修改a,也不能通过b来修改a
error: int &c = a//如果合法,就可以通过c修改a,所以规定为不合法
6.
合法:
const 引用可以初始化为类型不同的对象或作为右值
int i =42;
const int &r = 42;
const int &r2 = r+i;

不合法:

非const引用只能初始化为与之类型相同的变量

double i = 4.2;
int &r = i;

7.
习题2.25:(d)const不能被改变,
8.
枚举:
第一个赋值为0,后面的比前面的大1:
enum xxx{a,b,c};
如第一个初始化为1,后面为2,3,4:
enum xxx{a=1,b,c};
成员的值可不唯一:
enum xxx{a=1,b,c=3};
不能改变枚举成员的值,是常量表达式,可用于任何需要常量表达式的地方。
9.
枚举类型对象的初始化,只能通过其枚举成员或同一枚举类型的其他对象来进行:
10.
类:
操作称为成员函数,数据称为数据成员。
访问标号指:public,private
可用struct定义类,第一个访问标号前的成员默认为public,
struct和class定义的区别仅在于默认的初始访问级别。
11.
头文件中不含定义,只含声明。
声明可以多次,定义只能一次。
例外:头文件可以定义类、值在编译时就已知道的 const 对象和 inline 函数。
12.
头文件中定义的const变量用常量表达式初始化时,编译器在编译时会用相应的常量表达式替换这些const变量的任何使用,所以不会有任何存储空间用于存储常量表达式初始化的const变量。
13.
如果const变量不是用常量表达式初始化的,那么它不应该在头文件中定义,应该和其他变量一样,在一个源文件中定义并初始化,在头文件中添加extern声明,使其能够被多个文件夹共享。
14.
头文件保护符:
预处理器变量,唯一,有已定义和未定义两种状态,为避免冲突,用大写字母表示
#ifndef AAA_H
#define AAA_H
//
#endif
15.
<>:标准头文件
"":非系统头文件,查找通常开始于源文件所在的路径
16.
常量表达式:值可以在编译时计算出来的整形表达式
enumerator:枚举成员
header:头文件
interface:接口
magic number:意义重要但不明显的字面值数字



 

posted @ 2020-05-07 19:07  幻想Elapse  阅读(534)  评论(0编辑  收藏  举报