我遇到了一个有趣的问题。我有一个在C++中返回填充有类的向量的函数。一旦向量被返回,它就会调用向量中每个元素所对应的类的析构函数。
问题很明显:数据被销毁时,指针所指向的类也会被释放,因为这些指针是在对象被销毁时释放的。我猜想析构函数被调用的原因是向量位于栈上,而不是堆上。
所以问题是:
有没有办法保持从函数返回向量,而不销毁它?或者我必须通过将向量的指针作为输入参数传递给函数来解决这个问题?
问题很明显:数据被销毁时,指针所指向的类也会被释放,因为这些指针是在对象被销毁时释放的。我猜想析构函数被调用的原因是向量位于栈上,而不是堆上。
所以问题是:
有没有办法保持从函数返回向量,而不销毁它?或者我必须通过将向量的指针作为输入参数传递给函数来解决这个问题?