我正在尝试通过void
函数传递类的引用,但它会引发错误。
这是代码(它必须是void
函数,不返回任何内容)。如果我更改函数以返回int
或string
它可以正常工作,但我不想这样做。
#include <iostream>
using namespace std;
class car
{
public:
car()
: wheels(4)
{
}
int wheels;
};
void getwheels( car& i_car )
{
//do something here
}
int main()
{
car mycar;
mycar.wheels = 6;
cout << getwheels( mycar )<< endl;
}
问题void
。
答案 0 :(得分:2)
getwheels
会返回void
,但您将其打印出来,就好像它有一个返回值一样。如果函数没有返回任何内容,则无法打印调用它的结果。
要解决此问题,只需在不打印的情况下调用该函数:
getwheels( my_car );
或者如果您打算打印出wheels
值,请在函数内打印值:
void getwheels(car& i_car)
{
cout << i_car.wheels << endl;
}
答案 1 :(得分:1)
尝试从gowheels返回 wheel 而不是 void
int getwheels(const car& i_car)
{
return i_car.wheels;
}
或将 std :: ostream 传递给getwheels:
std::ostream& getwheels(std::ostream& out, const car& i_car)
{
//do something here
out << i_car.wheels << std::endl;;
return out;
}
int main()
{
car mycar;
mycar.wheels = 6;
getwheels(std::cout, mycar);
}