将常量引用传递给函数

时间:2015-04-19 02:40:18

标签: c++

我试图使用pass by reference将常量整数传递给函数。

#include <iostream>
using namespace std;

int test(int& num);
// changes a constant variable

int main() {
  int loopSize = 7;
  const int SIZE = loopSize;
  cout<<SIZE<<endl;
  test(loopSize);
  cout<<SIZE;
  return 0;
}

int test(int& num){
  num -= 2;
}

但是,输出永远不会更新。

2 个答案:

答案 0 :(得分:6)

SIZEloopSize是两个不同的对象。即使SIZE当时以loopSize的值开始生命,但更改一个不会改变另一个。 SIZE不是参考。

事实上,由于SIZE是一个常数,你无法合理地期望它无论如何都会改变

您是否有可能撰写以下内容?

const int& SIZE = loopSize;
//       ^

答案 1 :(得分:0)

您正在更改loopSize并打印SIZE,因此显然该值不会更改。此外,SIZE是一个const,它不会改变。