一. 命名空间
a. using namespace std;//使用命名空间
b. 什么是命名空间?
命名空间就是将标识符定义到一块,封装起来,形成一个命名空间。
c. 命名空间的作用
区分同名的标识符
d. 定义一个命名空间
a. namespace 命名空间名 { }
b. 怎么使用命名空间中的标识符
1. 命名空间名::标志符
2. using namespace 命名空间名;
e. 在C++中标准类库的变量与函数都是定义在std这个命名空间中
二. 函数参数默认值
a. 函数的生命/函数的原型
1. 函数声明是没有函数体的函数
1. void fun1(int a, int b, int c) //这里的参数是形式参数,函数声明的时候形式参数可以不指定参数名
2. 函数的定义
1. void fun1(int a, int b, int c) {
函数体
}
2. 调用函数
fun(1, 2, 3) //这里的参数实际参数
3. 又返回值的函数
int fun1(int a, int b, int c) {
return 1;
}
b. 函数参数的默认值
1. 在定义函数或者声明函数的时候给出形式参数的值,当我们调用函数的时候,如果没有指定实际参数,那么可以使用函数参数的默认值
2. 定义函数参数的默认值
1. void fun1(int a=0, int b = 0, int c = 0) {
cout<<a<<“ “<<b<<“” <<c<<endl;
}
2. 调用带有默认参数值的函数
1. 如果实参的个数与形参的个数一致,那么输出的是实参的值
2. 定义函数参数的默人值的时候,一旦有一个参数定义了默认值,那么这个参数之后的所有参数都要有默认值
3. 如果实际参数的个数少于形式参数的个数,那么先使用实际参数给形参赋值,后面的形参使用默人的值
三. 引用(引用,常引用,引用作为函数的参数与返回值)
a. 什么是引用呢?
b. 怎么定义引用?
1. Int one =10
2. 定义引用的基本语法 : 数据类型 &引用名 = 变量名
3. Int &ref = one;
4. 引用于变量指的是同一块内存空间
5. 可以通过引用去修改变量的值
6. 定义引用的时候必须进行初始化
7. 不能使用常量去初始化引用,一个变量可以有多个引用
c. 常引用
1. 定义常引用 const int &ref = one;
2. 不能通过常引用去修改变量的值
四. const 关键字
a. const 可以修饰变量、可以修饰函数参数、修饰成员函数
b. const 修饰变量
1. const int one = 10;
2. const double pi = 3.1415926;//const修饰得变量就变成了常量,不能再修改这个常量的值
c. const 与指针一起使用
1. Int a = 10
2. const int *P = &a;//指针所指向的是一个常量值
3. int const * p = &a;//指针本身不能发生变化
4. const int * const p = &one;//指针指向的值不能改变,指针本身也不能改变。
d. 引用作为函数的参数与返回值
1. 引用作为函数的参数
void swarRef(int &a,int &b) {
cout<<"a = "<<a<<" b= "<<b<<endl;
int temp =a;
a = b;
b = temp;
cout<<"交换之后: a=" <<a<<", b= "<<b<<endl;
}
如果使用引用作为函数参数,那么形参的值如果改变了,那么形参的值改变了,会影响到实参的值
2. 引用作为函数的返回值
int aa = 100;
fun(aa) = 30; //返回值为引用类型的函数,可以放在赋值符号的左边
cout<<“aa = “<<aa<<endl;
五. 内联函数
a. 为什么会有内联函数的出现?
1. 函数的调用过程是怎样的?
程序执行的入口是主函数,在主函数中可以调用其它的函数,当调用其它函数的时候,需要保护现场,以及返回地址,我们还有开辟内存空间去保存形式参数的局部变量,转到调用的函数处执行,执行完毕之后需要释放内存,最后在返回地址处执行。这个执行过程会消耗掉很多时间,导致程序执行效率降低。
2. 在这种情况下出现了内联函数,内联函数出现的目的就是提高程序的执行效率。以空间换时间。
b. 定义内联函数
1. inline 返回值类型 函数名(参数列表)
{
函数体
}
c. 注意: inline关键字只能放在函数定义的地方(如果声音和定义只写一个地方的情况)
d. 是不是可以把所有函数都定义为内联函数?
1. 虽然内联函数可以提高程序的执行效率,但是并不是所有函数都可以定义为内联函数
2. 只有代码量少的函数可以定义为内联函数(三行左右)
网友评论