C++编程02(引用、参数传递、内联函数)

C++编程02(引用、参数传递方式、内联函数)

引用



一、引用

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_;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值