Вектор C ++ в куче вместо стека

Я столкнулся с интересной проблемой. У меня есть функция на C ++, которая возвращает вектор, полный классов. Как только вектор возвращается, он вызывает деконструкторы для каждого класса, который является элементом вектора. Проблема очевидна: данные уничтожаются там, где класс указывает на указатели, которые высвобождаются при уничтожении объекта. Я могу только предположить, что деконструкторы вызываются, потому что вектор находится в стеке, а не в куче.

Итак, вопрос: есть ли способ вернуть вектор из функции, без его уничтожения? Или мне пришлось бы передать указатель на возвращаемый вектор в качестве входных данных функции.

Alex

6
задан Alex 13 February 2011 в 14:58
поделиться