我是靠谱客的博主 发嗲楼房,最近开发中收集的这篇文章主要介绍C++ Primer 引用&,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

引用是为对象起另外起一个名字,不会产生新的对象(实体),但是会产生一个新的类型:引用类型。如int对象,被引用之后,这个别名的类型为 int&

关于引用:

  • 引用必须被初始化(因为他本身不是实体)

  • &只有在定义的时候,才表示是引用,在其他地方表示取地址

  • int a = 12;
    int &b = a;    // b是a的引用,同样指向a
    int &v = b;    // 都是a的引用
    int k = b;     // 等价于:int k = a;
    
    int &f = 13;   // 错误:引用的必须是一个对象
    double &e = a; // 错误:类型不一致
    
  • 一般来说,引用的和被引用的类型要一致,但有两种例外

// 第一种:初始化化常量引用时允许使用任何表达式作为初始值,注意是初始化常量引用
int i= 21;
const int &c = i;
const int &d = 32;
const int &f = c * 2;
int &r = c * 2;  // 只有这个是错的,不是初始化常量引用

// 第二种:存在继承关系的类是一个重要的例外,可以将基类的指针或引用绑定到派生类对象上

(一家之言)说说为什么要使用引用,C++ 11推荐的最佳实践中有这么一条:使用引用类型的形参代替指针

引用使用最多的地方就是函数声明:void fun(int &a),对比一下:void fun(int *a),两者都可以在函数体内修改a的值,前者是绑定,不需要拷贝,后者使用指针,在传值的时候是将指针拷贝过去,拷贝就会占用时间和内存

引用也会常常和const写在一块:void fun(const int &a),表示是绑定数据,但是在函数体内不允许修改我的值

最后

以上就是发嗲楼房为你收集整理的C++ Primer 引用&的全部内容,希望文章能够帮你解决C++ Primer 引用&所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部