注册 登录
编程论坛 C++教室

新手求助!

zyflrj 发布于 2012-10-31 16:22, 303 次点击
这个程序为什么运行结果为1呢?????高手能不能帮我解释解释这个程序,多谢了!
#include<iostream>
using namespace std;
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);
}
7 回复
#2
chensy2012-10-31 18:00
初始化为0,又有加一的操作,输出一
#3
JYIT2012-10-31 18:03
noOfStudents默认初始化为0
#4
JYIT2012-10-31 18:06
这个程序看起来简单,还是很有研究的价值,LZ把它每一步的作用要搞懂
#5
zxd5432012-10-31 23:20
那你要什么结果呢?
#6
JYIT2012-11-01 09:57
吗的  回答了没分
#7
liman1232012-11-04 12:21
类中有一个静态数据成员,其默认初始化值为0,进行了一次加1操作之后其值不会被释放,而是保留到了文件结束。所以最后输出为1
#8
zyflrj2012-11-04 21:17
谢谢各位了,小女马虎了一把!
1