C++中的 const修饰的是一个常量:
- const常量正常情况下内存不会为其分配空间,而是存在符号表中
- 使用的时候去符号表中取值
- 如果对const常量进行取地址操作,则编译器会为其分配一块空间,但是,它本身并不会使用
- 建议用 const 替换 宏常量
建议用 const 替换 宏常量
- const 和 define 的区别
define是预处理的处理,做的工作是完全替换,在程序中会有多个备份
const 是编译的时候处理,会进行变量的类型和作用域检测,只在符号表中有一个备份 - const 和 define 的相同点:
定义常量
命名空间的定义:
定义一块命名空间,名字叫 NameA
原来全局空间可以做的事情,命名空间都可以做:定义变量、函数、宏、结构体、枚举…
namespace NameA
{
int g_a;
}
命名空间的使用:
通过命名空间名字和 域解析符(::) 引用空间中的成员
NameA::g_a = 10;
通过 using 声明来使用整个命名空间
using 声明只在当前作用域有效
开启命名空间NameA,之后使用NameA中的成员不用再加域解析符
using namespace NameA;
g_a = 10;
通过 using 声明来使用命名空间中的某个成员
using NameA::add; // 之后使用 NameA 的add 不需要再加域解析符
默认命名空间使用
using namespace NameA;
NameA::g_a = 10;
// 默认命名空间成员直接用域解析符 :: 来引用
::g_a = 20;