class student
{
public:
static int noofstudents;
student& nextstudent()
{
noofstudents++;
return *this;
}
};
int student::noofstudents=0;
void fn(student&s)
{
cout<<s.nextstudent().noofstudents<<endl;
}
void main()
{
student ss;
fn(ss);
}
当我观察s.nextstudent()的时候会发现结果是4而不再是原来的1了!
怪异的一腿,是不是我观察函数的时候就会使它重复运算了呢?不懂!
{
public:
static int noofstudents;
student& nextstudent()
{
noofstudents++;
return *this;
}
};
int student::noofstudents=0;
void fn(student&s)
{
cout<<s.nextstudent().noofstudents<<endl;
}
void main()
{
student ss;
fn(ss);
}
当我观察s.nextstudent()的时候会发现结果是4而不再是原来的1了!
怪异的一腿,是不是我观察函数的时候就会使它重复运算了呢?不懂!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货