reg*_*cob 5 c++ xcode irrlicht objective-c++ ios
这段代码
virtual const core::matrix4& getViewMatrixAffector() const {return core::matrix4();};
Run Code Online (Sandbox Code Playgroud)
结果有一个警告告诉我“返回对本地临时对象的引用”......
如何解决这个警告?
如下所述,我试图删除“&”...

当您创建一个对象作为本地临时对象时,一旦函数的作用域结束,它就会被销毁。反过来,您永远不应该返回对它的引用,因为这会产生未定义的行为。考虑按值返回它,或返回指向自由存储上的对象的智能指针。
由于您无法控制返回类型,因此必须确保返回一个有效的对象而不仅仅是一个临时对象。一种解决方案是函数局部静态变量:
virtual const core::matrix4& getViewMatrixAffector() const
{
static const core::matrix4 val;
return val;
};
Run Code Online (Sandbox Code Playgroud)
如果您发现自己在许多函数(具有相同类型的变量)中执行此操作,请创建val一个(适当重命名的)类的静态成员。
| 归档时间: |
|
| 查看次数: |
11378 次 |
| 最近记录: |