Вы не предоставляете достаточно информации для точного определения проблемы или даже в чем проблема.
Но есть вещи, которые вы можете сделать, чтобы очистить код, и, возможно, это поможет.
1. Использовать std :: vector вместо `new` -ing raw-массивов
Вместо
unsigned int *m_pIndices=new unsigned int[index];
использовать
std::vector<unsigned> indices( index );
Примечаниечто этот std::vector
сам по себе не выделяется динамически.
Он использует динамическое распределение внутри, и делает это правильно для вас.
Еще лучше, просто используйте…
std::vector<int> indices( index );
… потому что беззнаковая арифметика может легко испортить.
2. Не используйте вводящее в заблуждение наименование
Префикс m_
создает впечатление, что вы действительно хотите получить доступ к элементам данных, а нелокальные переменные.
Но вы определяете локальные переменные.
Либо используйте члены данных, либо удалите префиксы m_
name.
3. Не используйте повторно"Переменные
Вы используете переменную index
для нескольких последовательных целей.
Объявите и используйте одну(правильно названная) переменная для каждой цели.
4. Не полагайтесь на побочные эффекты от более раннего кода.
Например, вы полагаетесь на значение index
послеfor
-loop, где используется счетчик цикла.
Вместо этого непосредственно используйте полученное вами значение, которое у него будет.
5. Не затеняйте код до-ничего.
Это просто проблема стиля, но рассмотрите возможность удаления всех квалификаций this->
.Это многословно и затемняет код;это делает код менее читабельным и менее понятным.Да, с такими примитивными инструментами, как Visual Studio, такие квалификации могут помочь в получении имен в выпадающих списках, но это плохая услуга: усложняет запоминание, а без запоминания не может быть понимания, необходимого для правильной записи.код.
Приветствия и hth.,