C++学习笔记1
命名空间
命名空间的本质
命名空间,即namespace,本质上是一个域,与其他域各自独立。解决了名字冲突。
命名空间的使用
在使用命名空间内的变量或者函数时,有2种方式
-
指定命名空间访问
namespace A{ int a =10; } A::a = 10;
-
使用using进行展开
//将成员展开 using namespace A::a; //全部展开 using namespace A;
输入输出
相比于C,C++的输入和输出也有变动,同样需要包含头文件,其名称为
std::cin 则用于输入
#include <iosteam>
using namespace std;
int main(){
int a;
cin>>a;
return 0;
}
std::cout 则用于输出
cout<<a<<endl;
缺省参数
-
定义:
缺省参数是声明或定义函数时为函数的参数指定⼀个缺省值。在调⽤该函数时,如果没有指定实参 则采⽤该形参的缺省值,否则使⽤指定的实参。
-
分类:
全缺省:全部形参给缺省值。
半缺省:部分形参给缺省值。
函数重载
-
定义:在同⼀作⽤域中出现同名函数,但是要求这些同名函数的形参不同
-
函数区分点:
参数是需要注意的地方:
1.参数个数不同
int f(int a,int b ); int f(int a);
2.参数类型不同
int f(int a); int f(double a);
3.参数顺序不同
int f(int a,int b); int f(int b,int a);
引用
-
引用的概念:
给已存在变量取一个别名,但不会额外开辟空间,而是与被引用变量共用一个空间
-
引用的特性:
- 在定义时必须初始化
- 一个变量可有多个引用
- 引用只可引用一个实体
-
引用的使用
int a = 0; //定义引用 int& b = a; //引用代替指针传参 void swap(int&a,int&b){ int tmp = a; a = b; b = tmp; }
-
const引用
-
用于const对象的引用,也可以是非const对象,但是权限只能缩小而不能放大
-
临时对象具有常性,因此在转换类型的时候可以使用const引用
int a = 10; const double& b = a;
-
-
和指针的对比
语法概念 初始化 对象 访问 安全性 指针 变量地址 无需 可改变 需解引用 已出现野指针 引用 别名 必须 不可改变 直接访问 很少出现
inline内联函数
定义:用Inline修饰的函数。
功能:编译时编译器会在调用的地方展开内联函数,这样调用内联函数就需要建立栈帧了,可提升效率。