Да, я искал, но я не могу найти ответ. У меня есть вектор, который является членом класса. Этот вектор задает некоторые значения (в данном случае только 1) в конструкторе класса. Как только конструктор закончен, вызывается деструктор объектов в векторе.C++: элементы-элементы уничтожены после вектора, заполненного в конструкторе класса
Вот короткий и сладкий вариант того, что я имею дело с
test.h
Class test
{
private:
Vector<Sprite> sprites;
public:
test(item _something);
}
test.cpp
test::test(item _something);
{
sprites.emplace_back(_device, tBank["TestTexture"]);
}
main.cpp
test testItem;
main()
{
testItem = testItem(something);
// This is where the destructor for sprite is called
}
Я знаю, что код выше не работает bu t это сокращение того, что происходит. Я могу отправить все это, если потребуется. В любом случае я делаю что-то сумасшедшее?
Это что, std :: vector? Почему ключевое слово класса занимает верхний регистр? – elimirks
Я предполагаю, что вы имеете в виду 'testItem = test (что-то);'? А что такое 'Vector' (верхний регистр V)? Пожалуйста, отправьте сообщение [SSCCE] (http://sscce.org) – Praetorian
Вы должны скопировать реальный код и убедиться, что он действителен (где тип возврата 'main'?) –