返回函数中的本地对象

时间:2015-05-14 11:34:47

标签: c++

我已完成以下代码:

Xyz CV::Init(Source& node)
{

    if (node == 5)
    {
        Xyz nodeRelay(node.getNodeQ());
        nodeRelay.setInputNode(node);
        return nodeRelay;
    }
}

我用它像:

Xyz xyz = Init(center);

当我尝试编译时,我收到错误:

error: use of deleted function

我正在使用C ++ 11和GCC 4.9.0

XyZ是这样的:

Xyz::Xyz( uint8_t type ):
BaseNode(),
m_type(type)
{

}

错误在于:

return nodeRelay;

如果我拿走它然后编译。

1 个答案:

答案 0 :(得分:0)

从函数返回本地对象很好。你只在node = 5时才返回Xyz对象,如果node不等于5,你应该返回一些有效的Xyz对象。