美文网首页
C++_lesson02(重载\默认实参\内联)

C++_lesson02(重载\默认实参\内联)

作者: 悲观主义偏执精神病患者 | 来源:发表于2016-12-20 22:57 被阅读0次

    1. 重载的二义性错误

    重载的规则:参数不同

    Paste_Image.png

    区分精准和提升匹配

    当匹配有二义性的时候,注意找到错误

    2. 默认实参

    Paste_Image.png

    直接在参数里面传入num

    这样就可以直接调用mycout();

    Paste_Image.png

    二义性:编译器无法找到与之唯一匹配的东西
    解决方法:1. 修改参数 2. 强制转化

    三、内联函数
    在函数名前面加上“inline”表示内联函数
    内联函数的优缺点:
    好处:1. 不会新建栈 2. 将代码展开  运行的效率大大提升
    坏处:生成的体积会膨胀 .exe会很大

    Paste_Image.png

    但加上inline不一定100%成为内联函数
    (还是没懂inline函数是啥 ...里面怎么用)
    编译器在什么时候使用inline函数:

    1. 根据里面的栈的使用情况来解析。节约跳转call的时间
    2. 分配栈的时候可以放在同一个函数里,一次性分配
    3. 代码简单,展开少。函数调用少,调用层次少。

    3. 类型转换

    C语言中的类型转换:
    强制转换 int num = (int) 1.0003

    c++语言转换方式:

    1. int num = static_cast<int>(1.0003) // 不是强制转换,只是表示转换。int不能转char
    2. 也可以用const_cast <>(); //可以移出对象的常量性 变成非const
    3. reinterpret_cast <>(); //危险..强制转换,二进制的层面的转换
    Paste_Image.png

    引用和指针的区别

    引用(类型名 & 引用名-> int &ref = num,val = 100;)

    1. 引用是变量的别名,没有独立的内存空间,他和指向的变量共用内存空间。所以它必须指向一个变量,
    2. 引用被确定后就不能更改,不能指向其他变量。

    指针

    1. 指针拥有独立的内存空间
    2. 但是指针指向的某个变量的地址之后, 还可以指向另外的一个变量地址

    引用!啊!!啊!什么鬼啊! 我不学了

    相关文章

      网友评论

          本文标题:C++_lesson02(重载\默认实参\内联)

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