给出下面程序的运行结果1

来源:百度知道 编辑:UC知道 时间:2024/05/26 07:35:19
# include<iostream.h>
class Test{
private:
static int val;
int a;
public:
static int func( ){ return val++; }
void sfunc(Test &r){ r.a=125; cout<<"Result3="<<r.a; }
};
int Test::val=200;
void main( )
{ cout<<"Result1="<<Test::func( )<<endl; Test a;
cout<<"Result2="<<a.func( )<<endl; a.sfunc(a); }

先执行Test::func(),return val++,是先返回val的值200,再将val自增1,所以输出Result1=200;

再执行a.func(),因为val是静态变量,所以值能够保留,return 的值是201,输出
Result1=201;

最后执行a.sfunc(a),成员a被赋值125后输出,所以输出是
Result2=125

Result1=200
Result2=201
Result3=125