C++ 引用

文章介绍了C++中的引用概念,包括它是已存在对象的别名,不能独立创建引用的数组或指向引用的指针。引用在函数调用中作为参数时,实现传引用的效果,形参和实参指向同一对象。同时,文中通过示例展示了返回引用在方法链中的作用,以及与传值和返回新对象的区别。
摘要由CSDN通过智能技术生成
引用
• 引用的概念
• 声明具名的变量引用,即既存对象或函数的别名。
• 引用名特点:使用时类似变量,作为参数时能传引用
#include<iostream>
using namespace std;
int main() {
int a = 1024;
int *p = &a; // p是指针; &a是a的地址
int &x = a; // x是引用,它实际上与a是同一个变量
cout << "a = " << a << endl;
cout << "x = " << x << endl;
cout << "*p = " << *p << endl;
x = 2000;
cout << "a = " << a << endl;
return 0;
}
输出:
a = 1024
x = 1024
*p = 1024
a= 2000  
注意:
因为引用不是对象,故
• 不存在引用的数组
• 不存在指向引用的指针
• 存在引用的引用
传值和传引用
传值的本质是:形参是实参的一份复制。
传引用的本质是:形参和实参是同一个对象。
例:
void fun_1(int a); //int类型,传值(复制产生新变量)
void fun_2(int& a); //int类型,传引用(形参和实参是同一个东西) 
void fun_3(int* arr); //指针类型,传值(复制产生新变量) 
void func_4(int*& arr); //指针类型,传引用(形参和实参是同一个东西)
返回值和返回引用
返回值是返回一个克隆,返回引用是返回他本身。
例子:
class Number
{
public :
    int n;
    Number( int n ) :n( n ) {}
    Number & add( int num )
    {
        n += num ;
        return * this ;
    }
    Number & sub( int num )
    {
        n -= num ;
        return * this ;
    }
    void print()
    {
        cout << n << endl;
    }
};
int main() {
        Number n(1);
       n.add(2).sub(3).add(4);
       n.print();
}
输出:4
class Number
{
public :
    int n;
    Number( int n ) :n( n ) {}
    Number add( int num )
    {
        n += num ;
        return * this ;
    }
    Number sub( int num )
    {
        n -= num ;
        return * this ;
    }
    void print()
    {
        cout << n << endl;
    }
};
int main() {
        Number n(1);
       n.add(2).sub(3).add(4);
       n.print();
}
输出:3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值