const int & 和 int 的区别

最近看函数的返回值时总是出现这两种函数的返回值。


    const int& get() {return x;}
    int get() {return x;}

下面就关于这两种函数的返回值做一个小的笔记。

const int & 是返回这个数值的一个常量的引用

而int 是返回这个数值的一个拷贝。

1. int 是进行拷贝构造,而const int & 是返回的引用

2. 拷贝构造更消耗时间,与此同时还用析构函数。

3. 因为产生了一个拷贝,你就可以轻易地修改拷贝的内容

// const objects
#include <iostream>
using namespace std;

class MyClass {
    int x;
  public:
    MyClass(int val) : x(val) {}
    //const int& get()  {return x;}
    int & get(){return x;}
};

void print (MyClass& arg) {
  int & temp = arg.get();
  cout << temp << '\n';
  cout << ++temp << endl;
  cout << arg.get() << endl;
}

int main() {
  MyClass foo (10);
  print(foo);

  return 0;
}


// 10 11 11


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值