【问题标题】:What will be the lifetime of temporary instance? [duplicate]临时实例的生命周期是多少? [复制]
【发布时间】:2017-05-26 15:19:13
【问题描述】:
class A
{
public:
    A()
    {

    }
    A(A &copy)
    {

    }
};
void foo(A a)
{

}
int main()
{
    foo(A());
}

调用A()生成的临时实例会在拷贝构造函数结束后还是foo函数结束后删除?

【问题讨论】:

  • 为什么不添加析构函数,一些couts 看看?
  • 就目前而言,代码不会编译 - 复制构造函数的签名需要是A(const A &copy)
  • @NeilButterworth:你是对的,虽然有些编译器允许它作为扩展。

标签: c++ c++11 visual-c++


【解决方案1】:

临时在full-expression结束时被销毁。这意味着在foo 返回之后。

完整表达式是不是另一个表达式的子表达式的表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-11
    • 2011-10-15
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    相关资源
    最近更新 更多