我的节目:
class test { int k; public: void changeval(int i){k=i;} }; int main() { test obj; int i; cin>>i; obj.changeval(i); return 0; }
有没有什么方法可以直接将用户的输入作为参数传递给函数changeval(int),甚至没有将值初始化为i?
我的意思是,我不想声明一个变量只是为了将值传递给一个函数.有什么办法可以避免吗?如果是,我也可以将它用于构造函数吗?谢谢.
不.现在,你可以把它放到一个函数中:
int readInt(std::istream& stream) { int i; stream >> i; // Cross your fingers this doesn't fail return i; } // Then in your code: obj.changeval(readInt(std::cin));
但是当然,这仍然会产生一个int
(它只是将它移动到readInt
函数中).
实际上,您必须为其生成一些对象/内存空间int
,因此您可以阅读并传递它.你这样做可以改变.但要简单回答你的问题:不.