TreeMind树图在线AI思维导图
当前位置:树图思维导图模板高校与高等教育其他学科引用、函数、哑元、结构体思维导图

引用、函数、哑元、结构体思维导图

  收藏
  分享
免费下载
免费使用文件
U132902212 浏览量:122023-06-06 08:35:50
已被使用2次
查看详情引用、函数、哑元、结构体思维导图

引用、函数、哑元、结构体

树图思维导图提供 引用、函数、哑元、结构体 在线思维导图免费制作,点击“编辑”按钮,可对 引用、函数、哑元、结构体  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:77f4b9946b708b0d47c4de845bd6dc66

思维导图大纲

引用、函数、哑元、结构体思维导图模板大纲

引用

定义

数据类型 + & +引用名 = 引用的目标

注:引用必须初始化

eg:int arr=100; int &ret=arr;

注意事项

1、引用必须进行初始化

2、引用和目标使用的是同一片内存空间

3、引用的数据类型和引用的目标的数据类型一致

4、引用一旦指明目标后,不能再引用其他目标

引用做函数的形参

被引用的变量,通过引用,传递给函数

特点

1.引用作为函数的形参和地址传参具有相同的效果,引用传递的是整个变量(包括变量值和变量地址)

2、引用作为函数的形参不需要额外的开辟空间

引用作为函数的返回值(与指针类似)

指针作为函数的返回值

1、指针函数可以返回全局变量的地址

2、实参传递过来的局部变量的地址

3、static修饰的局部变量的地址

4、不能返回,定义在本函数内部的局部变量的地址,可以返回生命周期长的局部变量的地址

引用~

返回生命周期长的变量的地址

1、static修饰的局部变量

2、全局变量

3、实参传递的变量

4、堆区申请的空间

引用作为函数的返回值,该函数是一个左值

左值

能够出现在赋值语句左边的表达式或变量。换句话说,左值是一个可以被赋值的表达式或变量。

eg

int &fun(int a,int b) { static int sum; sum=a+b; return sum;//int &fun=sum } fun(a,b)=100;

右值

表示一个表达式或对象,它们在程序执行期间将会被临时创建并存在于一个临时区域中。右值引用是C++11引入的新特性,允许我们绑定到这些临时对象,并对其进行修改或使用。

普通变量作为函数的返回值,是一个右值

常引用

格式

const 数据类型 &引用名 = 引用目标

特点

不能通过常引用的引用名来修改目标变量的值

用来保护数据

不允许用户,通过常引用修改目标,实现保护数据的功能,仍然可以通过目标本身进行值的修改。

数组的引用

数据类型 (&引用名)[]= 数组;

int arr[5]={4,1,9,7,5}; //定义rea作为arr数组的引用 int (&rea)[5] = arr;

指针的引用

数据类型 *&引用名 = 目标;

eg

int a = 101; int *p = &a; int *&rep = p;

new/deleteC++中的动态内存分配

new

1、申请单个空间

申请空间不初始化

new 数据类型

申请空间初始化

new 数据类型(n)---->n是初始化的值

2、申请连续空间

申请空间不初始化

new 数据类型【数据个数】

申请空间初始化

new 数据类型【数据个数】{初始值.................}

delete

1、释放单个空间

delte + 地址;

2、释放连续空间

delete +【】+地址

注意:【】内不要加个数

函数的重载

特点

1、函数名必须相同

2、形参不同(参数个数不同、参数类型不同),对于返回值没有要求

3、作用域相同

作用

实现一名多用(调用时,编译器会根据实参决定调用哪一个函数)

静态多态的一种

重载内部缩写eg

string add(string str1,string str2)

缩写:addSs

int add(int num1,int num2,int num3)

缩写:addiii

函数的默认参数

与c的区别

c语言中函数参数的值,只能从主调函数中获取

c++中支持默认参数,如果主调函数没有传参,就使用默认参数的值,如果主调函数传参就使用实际参数的值

注意事项

1、实参在传递时,是靠左2原则,所以函数的默认参数要靠右原则

2、只有参数右侧的参数全部设置默认值后,该参数才能设置默认值

eg:

int add(int num1,int num2,int num4,int num3=100)

哑元

用来占位,无实际意义

eg:int add(int num1,int num2,int,int num4) { return num1+num4; } int main() { cout << add(1,2,3,4) << endl; //实际参数3,在函数内部没有被变量接收,没有实际意义,起到占位作用 return 0; }

内联函数(与带参宏类似)

适用场景特点

适用于代码行数较少(5行以内)

调用频率比较高的函数

eg:inline int max(int num1,int num2) { return num1>num2?num1:num2; }

作用

建议编译器,在主调函数前展开函数

不一定展开

优缺点

优点

提高代码运行效率

缺点

可能会造成代码膨胀的问题

内联函数与带参宏的区别

处理阶段不同

内联函数在编译阶段编译

带参宏在预处理阶段处理

处理语句的复杂程度不同

带参宏只能完成简单的语法

内联涵函数可以完成稍复杂的语法

c++中的结构体

c++中的结构体

1-C++中的结构体,允许成员变量有默认值

eg:int age=10;

结构体eg:

Num//struct 可以不加 { public: //共有的,如果不写在结构体中所有的权限都是public int age = 20;//允许成员变量有默认值 int high; //C语言中,结构体嵌套时,需要定义出嵌套的结构体变量 //C++中可以直接嵌套结构体类型----》把n去掉 struct N { private: //私有的 float fat; //fat是N这个结构体的私有成员 public: //外部访问不了结构体内的私有成员fat, //但是结构体提供了一个public的接口,给外界展示fat的值 void show() { cout << fat << endl; } //提供一个公共的接口set,给私有的成变量fat赋值 void set_() { cin >> fat; } }n; void show(); };

2、c++在结构体内可以放声明一个结构体类型(即将结构体定义放在结构体中)

3、c++中定义时可以不放struct

4、C++中的结构体类,可以定义函数(结构体声明,结构体外定义)

5、c++结构体成员是有权限的,结构体中默认权限是public

c中的结构体

1-:c中的结构体,不允许成员变量有默认值

2-:c中的结构体不可以放声明,只能放结构体类型的变量

结构体中的三种权限

私有(private)

外界无法直接使用,通过人为提供接口

读取私有变量

结构体提供了一个public的接口,给外界展示fat的值 void show() { cout << fat << endl; }

修改私有变量

//提供一个公共的接口set,给私有的成变量fat赋值 void set_() { cin >> fat; }

保护(protected)

公共(public)

相关思维导图模板

一、研究内容思维导图

树图思维导图提供 一、研究内容 在线思维导图免费制作,点击“编辑”按钮,可对 一、研究内容  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:4f21797dd3e8b08f1951dfc24e7be94f

二手书销售平台新航标思维导图

树图思维导图提供 二手书销售平台新航标 在线思维导图免费制作,点击“编辑”按钮,可对 二手书销售平台新航标  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:a92403b70afada50cf4fa4f56e0981c9