R6010:我可以通过一个int&到一个接受int的函数?

时间:2012-11-03 12:36:35

标签: c++ runtime-error

我有一个声明类似

的函数
void func1(int& x) {
    func2(x); // func2 accepts an int
}

我认为这是程序崩溃的原因?我收到了错误

  

R6010 - abort() has been called

将x传递给接受int的函数需要做什么?我希望他们的工作方式相同......因为我可以使用cout << x

来回显x的值

更新

只是一个测试:

cout << stmtNo << endl;
Node* n = ast->getNode(stmtNo);
cout << n->getNodeType() << " " << n->getStmtNo() << endl;

以上失败......传递

cout << stmtNo << endl;
Node* n = ast->getNode(1);
cout << n->getNodeType() << " " << n->getStmtNo() << endl;

1 个答案:

答案 0 :(得分:2)

没有问题,您始终可以将整数引用作为整数的参数传递。

整数引用可以解释为自动取消引用自身的常量指针。

#include<iostream>
using namespace std;
void fun_2(int s)
{
   cout<<s<<endl;
}
void func(int &d)
{
    fun_2(d);
}

int main()
{
   int x=99;
   func(x);

   system("pause");
   return 0;
}

以上代码完美无缺!