关于C++引用类型一点认识

本文详细解析了C++中引用类型的特性及使用限制,包括必须初始化、不能返回临时变量引用、作为参数时不能传递常量以及引用指向固定不变等关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用类型可以和指针一样指向某个变量,但两者在使用的时候还是有许多区别,

 

1.声明一个引用类型后,一定要给他赋值,否则编译通不过,特别是在类中,如果有引用成员变量时,一定要在构造函数的初始化列表中初始化,例如:

class foo

{

public:

foo(){}

private:

int& var;

};

foo f; // Error, 没有初始化引用变量var

 

2.引用类型在使用时有一定的限制,函数不能返回一个临时变量的引用,例如:

//Error

int& foo(int a, int b)

{

int c;

c = a + b;

return c;

}

变量c是临时变量,返回c的引用可能会引起严重错误

 

3.引用类型适用于函数传递参数,这是非常方便的,避免了复制拷贝,但要注意的是,传递的参数必须是变量,而不能是数值常量,例如:

int foo(int& a, int& b)

{

return a+b;

}

//

int a =0, b=1, c=2;

char d='d';

a = foo(b, c); //OK

a = foo(b, (int)d); //Error

a = foo(1, 2); //Error

 

4.引用变量一旦指向某个变量后,就不能再改变它所指向的引用,只能改变指向变量的值,因此如果需要动态改变它所指向的变量,那么引用类型就不适用了,那就该用指针,例如:

int a =10;

int& ref = a;

a = 20; // ref=20

ref = 30; // a=30



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值