Имеется элементарный код в .h файле:
class Student {
protected:
char* name;
int* asses;
int size_name;
int size_asses;
public:
Student();
~Student();
};
И в .cpp файле:
Student::Student() : size_name {64}, size_asses {5} , name {new char[size_name]}, asses {new int[size_asses]}
{
cout << "Student()" << endl;
}
Student::~Student()
{
if (name != nullptr)
{
delete[] name;
}
if (asses != nullptr)
{
delete[] asses;
}
}
Анализатор CLang выдает следующие предупреждения напротив списка инициализации конструктора класса:
Field 'size_asses' will be initialized after field 'name' - при использовании компилятора MSVC2019
Field 'size_name' is uninitialized when used here - при использовании последнего MinGW
Подскажите, почему так?