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

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. 但是指针指向的某个变量的地址之后, 还可以指向另外的一个变量地址

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容