C++对函数、结构体的增强——inline内联函数、函数重载、struct升级

一、自定义函数VS宏函数

1、自定义函数: 通过函数名找到函数存放的位置,给形参分配空间,传参,执行函数体内的语句,函数返回,释放空间。

2、宏函数:宏替换,省去了形参以及函数体内需要分配的空间,还省去了函数调用传参,函数返回等过程,节省时间,提高运行效率。

#define  add(a,b)  a+b
 省去了形参以及函数体里需要分配的空间;
 省去了函数调用,传参、函数返回、释放等过程(运行效率)

二、宏函数VS 内联函数(inline修饰函数)

1、宏函数:编译时间换取内存空间

——宏函数的使用时机:频繁调用且功能简单的函数

2、内嵌(联)函数:内存空间换取运行时间
在这里插入图片描述
在这里插入图片描述

三、函数重载

1、函数重载的定义
——可以使用已存在函数名,但是该函数的形参的个数或者顺序或者类型与已存在函数不同;(返回值不能作为重载条件)

2、函数重载的条件
——函数的形参的个数或者顺序或者类型与已存在函数不同

3、注意事项
——c++允许函数形参表中有默认参数,可能会破坏重载条件

——默认参数:int add (int a,int b,int c=2)
一个参数为默认参数,那么它后面的参数必须全部为默认参数

——函数的形参占位符:int add (int a,int b,int)

——函数重载与函数指针:

4、函数重载的例子
在这里插入图片描述

在这里插入图片描述

四、结构体struct升级

1、什么是结构体?
——封装不同类型的数据(将不同类型的数据整合在一起,用同一种数据类型表示

2、C语言中的结构体:

struct  student
{
    int num;
    char name;
 }

——定义结构变量必须加struct关键字;

struct  student s1;

——只能存放变量,不能存放函数;

代码案例:
在这里插入图片描述

3、C++ 中struct升级

——1)可以在结构体内部进行函数的申明,在结构体外部写函数体
——2)在struct内部实现函数和在外部实现函数:在内部实现的函数可能被编译器修饰为inline内联函数
——3)可以在结构体里加入权限修饰符

public 公有权限 ,能够被外界访问
private 私有权限 ,不能在外部访问,但是可以在结构体内部访问 (这时候引入set和get函数)
protected 保护权限

——4)可继承,可多态 struct==class类
1、叫法的不同:
//结构体变量 = 类的对象  变量 = 对象
/函数称之为方法,结构里存放的变量称之为属相或者成员变量

2、class 与struct的区别:
/默认权限不同,class默认是private, struct默认是public

3、面向对象的代码结果分为三部分:
定义类: student.h文件
类的实现:student.cpp文件
最终完整的实现:main.cpp文件

代码案例:
student.h代码
在这里插入图片描述
student.app代码:
在这里插入图片描述
main.app代码:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值