1.标识符的作用域、可见性、生存期
作用域:
- 函数原型作用域:函数声明时使用
- 局部作用域:{}
- 类作用域 :
- 文件作用域
- 命名空间作用域:using
可见性:从内向外看,应用场景:重复的标识符的可见性
生存期:
- 静态生存期:static
- 动态生存期:
2.类的静态数据成员
- static修饰
- 属于整个类,不属于某个对象
- 声明在类内,定义和初始化在类外
3.类的静态成员函数
- 用于处理静态数据成员
- 不能知道是哪个对象调用了该函数
4.类的友元
- friend修饰
- 破坏数据封装和数据隐藏的机制,增加灵活性
- 友元函数
- 在友元函数中可以访问private和protected成员,需通过对象访问(对象的常引用做参数)
- 友元类
- 单向友元
5.共享数据的保护:常类型const
- 常类型:
- 常对象:定义时初始化,const 类名 对象名
- 常成员:
- 常数据成员
- 常成员函数:
- 类型说明符 函数名(参数表) const
- 只处理常对象
- 成员函数加const和不加const,是有区别的,在处理常对象时,编译器会自动调用常成员函数
- 常引用:const 类型说明符 &引用名
- 常数组:类型说明符 const 数组名[大小]
- 常指针:
6.多文件结构
- 类声明文件(.h)
- 类实现文件(.cpp)
- 类的使用文件(main()所在.cpp)
-
外部变量:extern
外部函数:调用前进行声明即可
将变量和函数限制在编译单元内: namespace
标准C++库:输入输出类、容器类和抽象数据类型、存储管理类、算法、错误处理、运行环境支持
编译预处理:
- #include
- #include<> 系统库文件
- #include(.h) 自定义库文件
- #define
- const取代字符常量
- inline取代宏定义
- #undef
- #if常量表达式...#endif
- #if常量表达式...#else...#endif
- #if常量表达式1...#elif常量表达式2...#endif
- #ifdef标识符...#else...#endif
- #ifndef标识符...#else...#endif