C++

2020-03-13

2020-03-13  本文已影响0人  写代码的向日葵

一. 命名空间

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.  只有代码量少的函数可以定义为内联函数(三行左右)
上一篇下一篇

猜你喜欢

热点阅读