Я пытаюсь вставить объект локального класса в std :: vector внутри цикла for с помощью push_back. Чтобы избежать проблемы мелкого копирования, у меня есть конструктор копирования, который будет копировать переменные-члены. Мой класс содержит один массив с плавающей точкой. При попытке скопировать значения этого массива с плавающей запятой с помощью конструктора копирования я получаю сообщение «Программа получила сигнал трассировки / прерывания sigtrap», и я не могу отладить или выполнить код.
Я использую Dev c ++ 5.11. Я почти уверен, что из-за массива с плавающей точкой, который я пытаюсь скопировать в конструкторе копирования, возникает эта проблема. Но я не могу понять, что я делаю неправильно. Любая помощь будет оценена.
// My loop
for(int i=0; (i+2)<m_veclVertCoord.size(); i=i+3)
{
Vert obj;
obj.m_iIndex = ict;//index of verts
obj.m_fXyz[0] = m_veclVertCoord[i];
obj.m_fXyz[1] = m_veclVertCoord[i+1];
obj.m_fXyz[2] = m_veclVertCoord[i+2];
m_vecVerts.push_back(obj);
ict++;
}
// Копировать конструктор, который я использую
Vert::Vert(const Vert &ver)
{
m_fXyz[0] = ver.m_fXyz[0];// this float array is causing theissue
m_fXyz[1] = ver.m_fXyz[1];
m_fXyz[2] = ver.m_fXyz[2];
m_iIndex = ver.m_iIndex;
}