我有一个项目规范(所以我无法改变它)我创建了一个函数
const mat4& GetView() const;
在此函数上创建了mat4对象:
mat4* a = new mat4();
mat4 &ret = *a;
return ret;
稍后我会删除它。但是一旦我离开了GetView方法,我怎么能这样做呢?
感谢。
答案 0 :(得分:4)
取地址:
const mat4 & x = GetView();
delete &x;
(我假设operator&
没有超载。如果是,你需要做一些更复杂的事情。)
答案 1 :(得分:0)
我强烈怀疑这里只有三个合理的选择:
GetView
不应该返回const mat4&
GetView
应该返回对现有对象的引用而不是新创建的对象当然,在最后一点上,你真的应该在开始推动之前收集尽可能多的理由。