0

私は次のようなものを宣言した関数を持っています

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

これがプログラムをクラッシュさせるものだと思いますか?エラーが発生します

R6010 - abort() has been called

intを受け入れる関数にxを渡すには何をする必要がありますか?私はそれらが同じように機能することを期待していました...私はxの値を使用してエコーすることができるのでcout << 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;
4

1 に答える 1

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;
}

上記のコードは完全に機能します!

于 2012-11-03T12:46:02.020 に答える