C++编程02(引用、参数传递方式、内联函数)
引用
文章目录
- C++编程02(引用、参数传递方式、内联函数)
- 一、引用
- 1.引用的实质
- 2.引用必须初始化
- 3.对数组建立引用
- 二、参数传递方式
-
- 三、内联函数
- 四、全局函数和成员函数
一、引用
1.引用的实质
引用的实质就是起别名。
int &b = a;
b = 100;
&写到左侧是引用,写到右侧是取地址
2.引用必须初始化
3.对数组建立引用
int arr[10];
int(&pArr)[10] = arr;
二、参数传递方式
1.值传递
值传递只用来传入函数中用以计算或者判断,无法改变原有的值。
2.地址传递(指针或者引用传递)
地址传递可原有的值。对内存进行了修改。指针或者引用传递都是对地址的内存空间操作。
void swap(int *a,int *b)
{
*a= 10;
*b= 20;
}
int main()
{
int a = 0;
int b= 300;
swap(&a,&b);
}
void swap(int &a,int &b)
{
*a= 10;
*b= 20;
}
int main()
{
int a = 0;
int b= 300;
swap(a,b);
}
三、内联函数
内联函数其实就是替换Define的,将比较简单的功能函数转为内联函数后,可以降低程序运行的开销。
内联函数中不能有取址操作。
内联函数的声明,声明是不分配内存的
inline void func(int&,int&);
内联函数的定义,定义是函数功能的具体实现,分配内存
inline void func(int&a,int&b){
return a+b;
}
四、全局函数和成员函数
字如其名,全局函数是在CPP文件中实现的,不在类内。成员函数则是在类内定义与实现的。主要区别如下:
1、所谓全局函数就不是对象的一部分,它们被称为全局的,可以在程序的任何地方访问它们。
2、设计良好的函数应该执行单个的、易于理解的任务。
以下是成员函数的实现,比较学生的姓名和成绩是否一致
class Student
{
public:
bool compareGrades(Student &stu);
{
bool ret = stu.grades_ == grades_ &&stu.name_ == name_;
return ret;
}
privace:
float grades_;
string name_;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)