Привет им сделать менеджерстанд :: вектор push_back врезаться
Color класс внутри Color.h -Включены перед тем Manager.h
`Manager.h
class ColorEntry
{
private:
const char* m_pszName;
Color m_colColor;
public:
inline const char* GetName(void) const { return m_pszName; }
inline void SetName(const char* pszName) { m_pszName = pszName; }
inline Color GetColor(void) { return m_colColor; }
inline void SetColor(Color colNew) { m_colColor = colNew; }
};
class CColorManager
{
private:
std::vector<ColorEntry*> m_vecColors;
public:
void Initialize(void);
--etc
}
Manager.cpp
void CColorManager::Initialize(void)
{
AddColor("GUI_Outline", Color(0, 128, 255));
}
void CColorManager::AddColor(char* pszName, Color col)
{
ColorEntry NewCvar;
NewCvar.SetName(pszName);
NewCvar.SetColor(col);
m_vecColors.push_back(&NewCvar); -- crash here
}`
Помогите, я пробовал много способов, никто не работает, у меня есть другой способ, который делает это, но без цвета, и он работает s, так это цвет, который его испортил?
цвет класс с 4 байта
Пожалуйста, сделайте небольшой, но * компилируемый * пример, чтобы увидеть проблему. – deviantfan
Btw., 'Цветной класс внутри Color.h, включенный до того, как Manager.h' звучит как порядок ваших включений, важен ... вы можете включить Color.h (дополнительно) в Manager.h тоже, чтобы заказ не делал разница больше. – deviantfan
Просто не делайте контейнеры с обнаженными указателями. Все преимущества контейнеров теряются, когда они работают с объектами, которые не соответствуют семантике нормального значения. –