首页 > 其他分享 >2023.03.11.函数重载,引用等

2023.03.11.函数重载,引用等

时间:2023-03-11 11:34:12浏览次数:58  
标签:11 函数 int 2023.03 引用 func 重载 重写

程序生成的过程:
1.预处理:
头文件的展开
宏的替换
预处理指令解析
去掉注释

2.编译:预处理后文件 生成汇编文件 .asm(汇编代码)
词法解析,语法解析 语义分析 优化

3.汇编:汇编文件进一步处理,生成目标机器指令(二进制文件.obj)

4.链接:将多个目标文件(库文件)链接生成可执行程序(.exe,.out)

函数参数可以指定默认值,从左往右依次指定,不能间断
如果函数声明定义分开,在函数声明出指定默认值即可
函数重载:在同一个作用域下,函数名相同,参数列表不同(参数的类型,数量,顺序)的多个函数之间
编译器可以根据参数自动识别

重载和重写的区别
(1)范围区别:重写和被重写的函数在不同的类中,重载和被重载的函数在同一类中。

(2)参数区别:重写与被重写的函数参数列表一定相同,重载和被重载的函数参数列表一定不同。

(3)virtual的区别:重写的基类函数必须要有virtual修饰,重载函数和被重载函数可以被virtual修饰,也可以没有。


引用 :对已经存在的一块空间起别名
二者属于一个东西
定义了必须要初始化,指向一块空间(不能空引用)
引用
相当于给一个人取绰号 前提是有这个人存在,当起过绰号后,你喊出绰号,那个人也知道是在叫自己
1.引用定义就要初始化,指针可以不用初始化
2.引用一旦引用某个空间,就不能引用其他空间,指针可以修改其指向的空间
3.有空的指针,没有空的引用
4.引用不会额外开辟空间,指针会开辟存储地址的空间。
5.指针可以有多级,引用不能有多级

int a = 2;
int &b = a;//这里不是去地址,而是引用
这里面b的值就是2


除此之外,若在函数中使用引用作为参数,如下实例:将 a 当实参传给函数 func,x 为函数 func 的形参且为引用,
在函数 func 中 x 被赋予了新的值 3,于是 a 的值也跟着变为 3。

#include <iostream>
using namespace std;

int func(int &x)//函数func将引用当作形参
{
x=3;
return 0;
}

int main ()
{
int a=1;//声明整型变量
func(a);////给函数func传参
cout<<"a的值为: "<<a<<endl;//输出a的值,结果为“a的值为3”
return 0;
}


nullptr 和NULL的区别
1.nullptr 关键字 ,NULL宏 替换整形0
2.含义不同 nullptr空指针 NULL是整形0
3.为什么c++要引入nullptr

标签:11,函数,int,2023.03,引用,func,重载,重写
From: https://www.cnblogs.com/hualuoyumufeng/p/17205551.html

相关文章

  • 2023.03.11.命名空间
    c++命名空间为了区分不同库中相同名称的函数、类、变量等命名空间的定义使用关键字namespace,后跟命名空间的名称,如下所示:namespacenamespace_name{//代码声明}为......
  • 程序设计应用 2023-03-11
     DjangodoessupporttheModel-View-Controller(MVC)architecturalpattern.However,DjangousesaslightlydifferentapproachcalledModel-View-Template(MV......
  • 多媒体技术 2023-03-11
    音频的获取与处理2.1声音的基础知识声音的三个要素是音调、音强和音色。音调是指声音的高低,由频率决定。高频率的声音听起来高,低频率的声音听起来低。音乐中按音阶来表......
  • Linux Kernel 4.8.11版本发布
    在感恩节的周末,Linux Kernel4.8稳定版分支和4.4LTS分支都获得了维护版本更新。今天发布的LinuxKernel4.8.11和此前的4.8.10版本相隔5天时间,根据短日志主要对77......
  • Linux Kernel 4.8.11版本发布
    在感恩节的周末,​​Linux​​ Kernel4.8稳定版分支和4.4LTS分支都获得了维护版本更新。今天发布的LinuxKernel4.8.11和此前的4.8.10版本相隔5天时间,根据短日志主要对77......
  • ES6-ES11 ES10-Symbol.prototype.description
    原视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title......
  • ES6-ES11 ES10字符串方法扩展-trimStart-trimEnd
    原视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title......
  • ES6-ES11 ES10数组方法扩展-flat与flatMap
    原视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title......
  • 修复win11重置网络后有线无线均无法连接网络/没有WiFi图标问题
    win11网络重置,点击立即重置,然后出现了WiFi图标不见了,只剩下蓝牙、飞行模式、节电模式等五个模块。并且在设备管理器-网络适配器中驱动前都是黄色感叹号,双击查看状态为:代码5......
  • P1115 最大子段和
    P1115最大子段和最大子段和题目描述给出一个长度为n的序列a,选出其中连续且非空的一段使得这段和最大。输入格式第一行是一个整数,表示序列的长度n。第二行有n......