const int & 和 int 的区别

原创 2015年07月07日 10:59:40

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


    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


相关文章推荐

const int& x和 int const &x真的有区别嗎?

在wine的代碼中看到,我要實現的函數,demangle結果是class std::complex __cdecl std::pow(class std::complex const &,     ...

const T、const T*、T *const、const T&、const T*& 的区别

这里的T指的是一种数据类型,可以是int、long、doule等基本数据类型,也可以是自己类型的类型class。单独的一个const你肯定知道指的是一个常量,但const与其他类型联合起来的众多变化,...
  • luoweifu
  • luoweifu
  • 2015年05月09日 12:35
  • 12563

const int &x和int const &x有何区别

不过先声明我以下的内容是针对C++而言... 对于除指针以外的其他常量声明句法来说, const type name 和 type const name 的效果是相同的, 即都声明一个类型为typ...

C/C++代码命名和格式规范

命名 命名,包括文件名、类名、结构名、类型名、函数名、变量名、参数名等都是程序设计中重要的一部分。一个好的名称,体现了一个深思熟虑的过程,同时也能够帮助别人更好地理解开发者的思路。如果发现程序中...
  • f_zyj
  • f_zyj
  • 2016年06月06日 16:46
  • 2445

C、C++变量命名规则

转载自:http://blog.sina.com.cn/s/blog_8a7012cf01017h9p.html 变量命名规则是为了增强代码的可读性和容易维护性。以下为C++必须遵守的变量命名规则:...

const int *a int * const a区别实例

  • 2011年08月11日 21:54
  • 46KB
  • 下载

300/400 word 和 INT 区别

  • 2013年10月15日 13:45
  • 17KB
  • 下载

漫谈C指针第七讲---const int *pi 的语义

我先来说说const int *pi是什么作用 (当然int const *pi也是一样的,前面我们说过,它们实际是一样的)。看下面的例子:#include "stdio.h"main() { ...
  • will130
  • will130
  • 2015年09月05日 15:02
  • 470

JAVA-int和Integer的区别1.zip

  • 2012年09月01日 16:09
  • 9KB
  • 下载

int字节 interger区别

  • 2014年08月21日 09:34
  • 90KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:const int & 和 int 的区别
举报原因:
原因补充:

(最多只允许输入30个字)