不理解部分类的语句的含义,求解答

不明白以下语句的含义,求解答,谢谢!
1、GraduateStudent(int i):id(i){ }
2、GraduateStudent gs1;

题目要求是创建一个类来代表一位学生的学号信息,要求有:

  • id: int “C++ Programming Language”
    <
  • setId(i:int)
  • getId(): int

答案代码如下:

#include <iostream> 
using namespace std; 
class GraduateStudent
{ 
    public: 
        GraduateStudent()
        { id = 0; }
        GraduateStudent(int i):id(i)
        { }
        void setId(int i)
        { id = i; }

int getId()
{   
    return id; 
}
    private: 
      int id; 
};

int main() 
{   
    GraduateStudent gs(202101); 
    GraduateStudent gs1; 
    gs1.setId(202102);
    cout<<gs1.getId()<<endl; 
    cout<<gs.getId();
} 

GraduateStudent(int i):id(i)表示一个有参构造,id的值为参数 i
GraduateStudent gs1;表示一个无参构造,id的值为0