我遇到了一个有趣的问题.我在C++中有一个函数,它返回一个充满类的向量.返回向量后,它会为向量中元素的每个类调用deconstrustor.问题很明显,数据被破坏,其中类指向在销毁对象时释放的指针.我只能假设解调器被调用,因为vector不在堆栈上.
所以问题是:无论如何都要保持从函数返回向量而不被销毁?或者我是否必须传递一个指针返回向量作为函数的输入.
亚历克斯
您可以使用 .在堆上创建任何内容new。您不应该从函数中给出对堆栈对象的引用,因为一旦函数完成,它们就会被销毁。
如果您希望函数按值返回向量,请确保向量内的对象实现复制构造函数(也许还有赋值运算符,对此不确定)。话虽如此,请不要忘记三法则。
| 归档时间: |
|
| 查看次数: |
17315 次 |
| 最近记录: |