【发布时间】:2011-06-26 11:16:09
【问题描述】:
我遇到了一个有趣的问题。我在 C++ 中有一个函数,它返回一个充满类的向量。返回向量后,它会为向量中的每个元素调用解构函数。
问题很明显:数据在类指向指针的地方被销毁,当对象被销毁时这些指针被释放。我只能假设调用解构函数是因为向量在堆栈上,而不是在堆上。
所以问题是:
有没有办法继续从函数返回向量,而不被破坏?还是我必须传递一个指针以返回向量作为函数的输入?
【问题讨论】:
-
您是否返回了对临时对象的引用?我不太清楚你在描述什么。源代码?
-
@sstn:我返回一个完整的向量,而不是指向它的指针。
-
我假设您解决了您的问题 - 但只能在没有看到实际代码的情况下进行推测。顺便说一句,引用不是指针。
标签: c++ heap-memory stack-memory