我正在为傻瓜看 c++ 并找到了这段代码
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int nextStudentId = 1000; // first legal Student ID
class StudentId
{
public:
StudentId()
{
value = nextStudentId++;
cout << "Take next student id " << value << endl;
}
// int constructor allows user to assign id
StudentId(int id)
{
value = id;
cout << "Assign student id " << value << endl;
}
protected:
int value;
};
class Student
{
public:
Student(const char* pName)
{
cout << "constructing Student " << pName << endl;
name = pName;
semesterHours = 0;
gpa = 0.0;
}
protected:
string name;
int semesterHours;
float gpa;
StudentId id;
};
int main(int argcs, char* pArgs[])
{
// create a couple of students
Student s1("Chester");
Student s2("Trude");
// wait until user is ready before terminating program
// to allow the user to see the program results
system("PAUSE");
return 0;
}
这是输出
拿下一个学生证 1000
构建学生切斯特
取下一个学生证 1001
构建学生特鲁德
按任意键继续 。. .
我很难理解为什么第一个学生 id 是 1000,如果 value 添加一个然后打印出来
这有意义吗
就在studentId的构造函数中,两行代码取nextStudentId
并添加一行,然后打印出来
输出不会是这样的:
取下一个学生证 1001
构建学生切斯特
取下一个学生证 1002
构建学生特鲁德
按任意键继续 。. .
希望你明白我想说的
谢谢
卢克