2020-03-13

作者: 写代码的向日葵 | 来源:发表于2020-03-13 10:55 被阅读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.  只有代码量少的函数可以定义为内联函数(三行左右)

    相关文章

      网友评论

        本文标题:2020-03-13

        本文链接:https://www.haomeiwen.com/subject/ddqqshtx.html