c++的引用

1:认识一下基本使用

int a; 
int &ra=a;
&在此不是求地址运算,而是起标识作用。
常见错误举例:
int a; 
int &ra=&a; //错误 正确为int &ra=a
或者
void function(string&a)
{
  string s;
  a=&s; //错误 正确为a=s
}

2:引用的本质:

表达式int &ra = a; 将会被编译器转化成 int *const ra = &a; 
而引用之所以要初始化是因为 const 类型变量必须初始化,这个指针也必须有所指。

3:引用的目的

   主要用于在函数参数传递中,解决大块数据或对象的传递效率和空间不如意的问题。跟指针的区别前面也讲了就是const形指针

   但是程序中使用指针,程序的可读性差。

4:引用支持 c++ 虚函数机制的代码

#include <iostream.h>  
class A  
{  
public:  
         virtual void print() { cout<<"A.."<<endl; }  
};  
class B : public A  
{  
public:  
         virtual void print() { cout<<"B.."<<endl; }  
};  
   
class C : public B  
{  
public:  
         virtual void print() { cout<<"C.."<<endl; }  
};  
int main()  
{  
         C c1;  
         A &a1 = c1;  
         a1.print(); // prints C  
         A a2 = c1;  
         a2.print(); // prints A  
         return 0;  
} 
上述代码使用引用支持虚函数机制。
而虚函数机制所需要的动态信息只能通过指针才能实现,所以更加说明引用其实就是一个 const 指针。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值