C++ 学习笔记

来源:互联网 发布:淘宝网怎么刷单挣钱 编辑:程序博客网 时间:2024/05/10 10:23

C++

  1. 引用传递实参不能是常数,必须是变量

       void function (int & n) {    n ++;   }   int main () {    int x;        function (x); // ok        function (2); // 不允许   }
  2. 如果像让引用传递不改变实参的值可以用常量解决这件事
    void function (const int & ref) {
    // 这样就可以不让引用的值发生改变但是不能进行赋值
    //
    int a;
    ref = a; // 不允许
    }

  3. 函数体结束以后函数所占用的空间会被释放,注意如果将函数体内一个变量的地址返回出去,这样会出现野指针。
  4. 过载函数 具有相同的函数名,而具有不同的参数表 (参数个数、参数类型、参数顺序)的函数叫做过载函数,然而只有返回值不同是不可以的 (因为解析这个函数的时候只看参数表而不是返回值)。
    比如
    void p (int x) {
    cout << x + 1 << endl;
    }

    void p (double x) {
    cout << x << endl;
    }
    // 这两个函数就可以是过载函数
    过载函数解析的时候注意类型的匹配方式 匹配的只是参数表与函数的返回值无关

    • 精确匹配 (先进行)
    • 提升匹配 (可以进行类型转化的)
  5. 如果函数的过载参数有两个及以上时 如果转化的方式有多种切不存在精准匹配,这样的话会出现错误
    void f (double x,double y);
    void f (int x,int y);
    f (1.0,2) // error
    f (1,1) // ok
    f (1.0,1.0) // ok

  6. 参数传递的规则和函数返回值的规则都与变量 / 常量的初始化的规则一直, 关键还是看类型 (int -> double int -> long long )
  7. 定义函数的目的之一是在不同场合多次使用它,如果一个函数的参数太多,那么表示这个函数的功能太复杂,下决心把它分成多个函数。
原创粉丝点击