# `cpp`基本知识 ## 函数相关 ### 双冒号 1. 指定作用域 前面是作用域等类名称,后面接类的成员名称 例: A,B表示两个类,A,B中都有成员numb A::numb B::numb 2. 指定全局作用域的变量 例: 指定 使用全局变量或者局部变量 ```cpp #include int count = 0; //全局变量 0 void main() { int count = 10; //局部变量10 printf("count =%d\n",count);//局部变量屏蔽了全局变量 所以输出结果是10 { int count = 20; printf("count =%d\n",::count); //作用域符号指出引用全局变量0 //::sort } } ``` 3. 另外,双冒号也常常用于在类变量内部作为当前类实例的元素进行表示 例: ```cpp class CA { public: int ca_var; int add(int a, int b); int add(int a); }; //作用域 int CA::add(int a, int b) { return a + b; } //另外,双冒号在类变量内部作为当前类实例的元素进行表示 int CA::add(int a) { return a + ::ca_var; } ``` > 引用和地址的区别 > 前者好像类似于变量别名. 无论怎么变还是那个名字, > 后者是面向名字背后对应的那个人. ## `&`符号的作用 ### 引用声明符 > 给一个变量声明另一个名字,相当于别名作用? > b相当于a的一个别名 ```c++ int a; int &b=a; ``` ## 地址赋值运算符 > & 变量名//获得该变量的地址 > Int *p=&a //定义整形指针变量,并将a的地址赋值给指针变量。 ```c++ int a; int b = &a;//得到a变量申请的地址 ``` ## 枚举