在那种情况下对象是否被破坏了?

当我有一个函数时,让我们调用它foo()。在foo()我创建一个名为的对象obj1,它是ClassA. 另外,我将对象的引用复制到std::queue<ClassA&> qu.

我的问题是:返回obj1前对象是否已销毁foo()

代码示例:

class ClassA {...};

std::queue<ClassA&> qu;

void foo()
{
    ClassA obj1;
    qu.push_back(obj1);
}

int main()
{
    foo();
    return 0;
}

回答

您不能使用引用作为队列的元素。您也不能将引用用作任何其他标准容器的元素。因此,所示程序格式错误。

也就是说, obj1 是一个自动变量,因此它会在作用域结束时被销毁,在这种情况下是函数返回时。


以上是在那种情况下对象是否被破坏了?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>