OOP 1.1 引用

Posted fzu_Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OOP 1.1 引用相关的知识,希望对你有一定的参考价值。

1.1 引用

1、语法:类型名&引用名=某变量名 e.g. int &b=a;

  • 定义:引用则等价这个变量
  • 引用名的类型是:类型 &
  • 注意事项:
    • ①定义引用时,一定要将其初始化成引用某个变量
    • ②初始化后,它就一直引用该变量,不会再引用别的变量
    • ③引用只能引用变量,不能引用常量、表达式
    • ④引用一个引用是合法的 e.g. int &b=a;int &c=b//legal

2、引用实例:swap函数

  • c 指针:

    void swap(int *a,int *b)
    {
    int tmp;
    tmp=*a;
    *a=*b;
    *b=tmp;
    }
    swap(&n1,&n2);
  • c++ 引用:

    void swap(int &a,int &b)
    {
    int tmp;
    tmp=a;
    a=b;
    b=tmp;
    }
    swap(n1,n2);

3、引用可作为函数的返回值

int n=4;
int &f(){return n;}
f()=40;
cout<<n;//output 40

4、常引用

  • 语法:const 类型 & 引用名=某变量名 e.g.: const int &B=A;
  • 引用名的类型是 const 类型&
  • 不能通过常引用修改其引用的内容

5、引用与常引用的关系

  • T& 或者 T 可以初始化const T&的引用
  • const T和const T&不能初始化T& (除非强制类型转化)
    e.g.

        int A;
    int &B=A;
    const int &C=B;
    const int &D=A;
    int & E=C;//ILLEGAL
    const int &F=C;

以上是关于OOP 1.1 引用的主要内容,如果未能解决你的问题,请参考以下文章

OOP 学习笔记汇总

使用奇怪的 OOP 引用的 php5 到 php7 迁移代码问题? [复制]

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

OOP 设计以两种方式避免对象另一个对象