返回void函数

时间:2016-11-10 03:20:46

标签: c++ return void

我在这里很新。希望我能够随着时间的推移做出贡献。我很难分配这个新值。每当我运行代码时,它们只会得到零。

#include <iostream>
using namespace std;


void CoordTransform(int xVal,int yVal,int xValNew, int yValNew)    {


   xValNew = (xVal + 1) * 2;
   yValNew = (yVal + 1) * 2;

 return void();
}


int main() {
   int xValNew = 0;
   int yValNew = 0;

   CoordTransform(3, 4, xValNew, yValNew);
   cout << "(3, 4) becomes " << "(" << xValNew << ", " << yValNew << ")" << endl;

   return 0;
}

2 个答案:

答案 0 :(得分:3)

传递参数就是传递&#34;值&#34;。更改函数中的值不会影响保存传递给函数的值的原始变量。

通过引用传递。引用是原始变量,因此更改函数中的参数会更改原始变量。

void CoordTransform(int xVal, int yVal, int& xValNew, int& yValNew) {
   xValNew = (xVal + 1) * 2;
   yValNew = (yVal + 1) * 2;
}

此外,返回空值意味着您不能直接从函数返回任何内容。不要使用退货声明。

答案 1 :(得分:0)

您的意思是以下

#include <iostream>
using namespace std;

void CoordTransform( int xVal, int yVal, int &xValNew, int &yValNew )    
{
    xValNew = (xVal + 1) * 2;
    yValNew = (yVal + 1) * 2;
}

int main() 
{
    int xValNew;
    int yValNew;

    CoordTransform( 3, 4, xValNew, yValNew );
    cout << "(3, 4) becomes " << "(" << xValNew << ", " << yValNew << ")" << endl;

    return 0;
}

函数的第三个和第四个参数必须是引用类型。