您的位置:首页 > Web前端

const int & 和 int 的区别

2015-07-07 10:59 519 查看
最近看函数的返回值时总是出现这两种函数的返回值。

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  引用 reference const