Я не могу представить ни одной причины для этого ... вот моего базового классКраша экранной строки внутри указателя хранится в векторе
class TextureElement
{
public:
TextureElement(std::wstring mname);
std::wstring file;
std::wstring name;
TexMode texmode;
};
И это основное использование:
TextureElement* textureElement = new TextureElement(prename);
mClass->textures.push_back(textureElement);
textureElement->file = path;//<<here crashes if inheritance is done
очевидно prename и path являются wstrings, mstruct mClass содержит несколько векторов, включая этот, который хранит TextureElement * type
Это работает нормально, но если я наследую TextureElement от элемента
class Element
{
public:
Element(std::wstring mname, ElementType t);
Element(){};
~Element();
ElementType type;
std::wstring name;
};
Он падает.
Я попытался реализовать метод копирования для TextureElement (я был почти уверен, что это было необязательно), но это не сработало. Любая идея по этому поводу? Спасибо заранее
Что такое 'path'? 'wchar_t *' Думаю? Что, если 'путь == nullptr'? – ivaigult
Куча коррупции также может иметь место. Если куча повреждена, любое распределение памяти может привести к сбою. – ivaigult
Сначала дайте TextureElement виртуальный деструктор. Во-вторых, 'Element' на самом деле не наследует от TextureElement в вашем коде. – AndyG