返回无效函数
Returning void function
我是新来的。希望我能够随着时间的推移做出贡献。我很难分配这个新值。每当我 运行 代码时,它们只会得到零。
#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;
}
你的意思如下
#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;
}
函数的第三个和第四个参数必须是引用类型。
像您一样传递参数就是传递 "by value"。更改函数中的值不会影响保存传递给函数的值的原始变量。
改为按引用传递。引用是对原始变量的引用,所以改变函数中的参数会改变原始变量。
void CoordTransform(int xVal, int yVal, int& xValNew, int& yValNew) {
xValNew = (xVal + 1) * 2;
yValNew = (yVal + 1) * 2;
}
此外,void return 值意味着您不会 return 直接从函数中获取任何内容。不要使用 return 语句。
我是新来的。希望我能够随着时间的推移做出贡献。我很难分配这个新值。每当我 运行 代码时,它们只会得到零。
#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;
}
你的意思如下
#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;
}
函数的第三个和第四个参数必须是引用类型。
像您一样传递参数就是传递 "by value"。更改函数中的值不会影响保存传递给函数的值的原始变量。
改为按引用传递。引用是对原始变量的引用,所以改变函数中的参数会改变原始变量。
void CoordTransform(int xVal, int yVal, int& xValNew, int& yValNew) {
xValNew = (xVal + 1) * 2;
yValNew = (yVal + 1) * 2;
}
此外,void return 值意味着您不会 return 直接从函数中获取任何内容。不要使用 return 语句。