首页 > 编程知识 正文

重载函数的函数名必须相同,联合索引最左原则原理

时间:2023-05-03 06:28:13 阅读:10900 作者:4039

第一节课: bool、引用、内联函数、函数重载、函数参数默认文章目录第一节课: bool、引用、内联函数、函数重载、函数参数默认1、bool1.知识点介绍内联函数1 .知识点:2 .定义:3.使用引用1 .知识点:2.定义:3.使用:4.指针与引用的区别:5.review,函数重载1 .知识点:2.定义:3.使用: 4

一、bool 1.知识点介绍:

1.bool是数据类型

2.bool类型变量的值只能为true或false

3 .内存: 1字节大小

4 .注意:只有1为真,其他可能的值都为0 (假)

也就是说,遵循“非零即为真”的原则

2 .定义: bool isTrue=true; bool istrue1=false; bool istrue2=2; //istrue==false; bool istrue3=1; //istrue==true; bool istrue4=0; //istrue==false; 二、内联函数1 .知识点: 1)内联函数是指函数通过内存的膨胀(增加了代码空间)减少函数调用的开销,用空间来换取时间

2 .内联函数与宏定义不同,宏定义在预处理阶段进行一些置换工作。 另外一方面,内联函数在程序执行到调用内联函数时,置换为调用内联函数代码的位置

3 .内存膨胀:代码区域内存变多,函数调用时与普通函数相比,不需要申请堆栈区域内存运行函数,减少了函数堆栈在堆栈上的时间

2 .定义: inlineintmyadd(inta,int b ) { return a b; } 3.使用:1.函数体内容不能过多,不能有循环;

2 .在简单的赋值语句或return语句中,调用频率高的语句可以使用内联函数

3 .通过增加代码区域的空间来减少调用函数的跳跃,减少时间开销

4 .也是函数,与普通函数的调用相同

4.review :内存四个区域:全局变量区域、代码区域、堆栈区域、堆区域

三、引文1 .知识点:引文是给一个及定义的变量或对象取别名

2 .定义: int a; int typename_a=a; //在定义引用时必须初始化,并给a取别名typename_a 3. 使用:1.别名必须定义变量

(给一个人起绰号的前提是他必须存在) ) ) ) )。

2 .定义引用时必须初始化

(要起外号,必须指明这个外号是为谁起的。)

3 .引用是与原始变量相同的存储器。 也就是说,没有对定义的引用,内存无法打开

(在rose上加了绰号肉。 肉肉和rose是同一个人,并不是说肉是rose的复制品。 如果是的话,可以和rose结婚成为妻子) )。

4 .对引用的操作相当于对原始变量的操作

(你吻肉就像吻了罗丝本人一样)

5 .引用的类型必须与原始变量的类型相同

4 .指针与引用的区别:1.效率相同,但定义一个指针会打开4字节的空间,但引用和原始变量具有相同的内存

2 .引用必须在定义时初始化,但与指针无关

3 .引用直接访问,指针间接访问

4 .指针有多级指针,引用中没有

5.review: C :在用c语言定义变量时分配空间,即使未初始化也分配空间

四、函数重载1 .知识点:两个以上函数函数名称相同,满足一定条件,它们可以构成重载;

配置重载的条件:参数列表不同

)1)参数个数不同

)2)参数类型不同

2 .定义: voidfun(inta,int b ); voidfun(inta ); Void Fun (浮动; //如果返回值类型不同,则不会成为重载voidfun(inta ); intfun(inta ); 3 .使用:1.根据传递的参数确定调用哪个重载函数

2 .默认值必须是常数

3 .如果一个函数只有定义,则在定义中指定默认值;如果有声明,则在声明中指定;在定义中不使用

4 .函数重载调用时产生的二义性: intfun(inta ) {return a; (intfun ) floata ) {return a; (}int main ) ) fun ) ) 2.3; //2.3系统缺省为双精度类型,因此不知道要调用哪个函数//1。 编译器以最小内存类型将其调用//2。 用户进行模具的强制旋转,生成fun((int ) 2.3 ) )。 返回0; (五、函数参数默认值1 .知识点:模糊金针菇、参数列表参数值默认值

2 .定义: voidfun(inta,int b=0); voidfun(inta=1,int b ); //该默认值存在问题,产生二义性。 3 .使用:1.只能从后向前默认。 否则,就会出现二义性。

2 .参数列表中有两个参数。 默认值为一个,可以在调用时传递一个参数,也可以传递两个参数。 两个参数的值都是传递的值

4 .函数重载和函数参数默认二义性: intfun(inta,int b=0); intfun(inta ); fun(1; //出现二义性//到底要调用哪个? //解决方法:

1 .只能传递两个参数

2 .去除其中一个

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。