I was wondering if someone could explain initialization lists for structs and class member functions. I don't see why you would initialization in the initializer list instead of in the body of the program. For example:

Code:
StudentType::StudentType()
  : Grades(10, -1), Gender(female), Class(0)
{
}
I am guessing there's a good reason but I really don't understand the point.

Thank you so much for any help