Я смотрю на 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;
}
это вывод
Возьмите ID следующего студента 1000
Построение Студенческого Честера
Возьмите ID следующего студента 1001
Построение Студенческого Труда
Нажмите любую клавишу для продолжения. , .
У меня очень тяжелое время, чтобы понять, почему первый идентификатор студента равен 1000, если значение добавляет его к одному, а затем распечатывает
имеет ли это смысл
прямо в конструкторе для studentId. Две строки кода берут nextStudentId
и добавляют к нему одну, после чего она распечатывается
не будет ли вывод примерно таким:
Возьмите ID следующего студента 1001
Построение Студенческого Честера
Возьмите ID следующего студента 1002
построение Студенческого Труда
Нажмите любую клавишу для продолжения. , .
надеюсь, вы понимаете, что я пытаюсь сказать
спасибо
Люк