为什么析构函数被调用两次而构造函数仅被调用一次?

辛格

我的代码是

class CTemp{
public:
    CTemp(){
        printf("\nIn cons");
    }
    ~CTemp(){
        printf("\nIn dest");
    }
};

void Dowork(CTemp obj)
{
    printf("\nDo work");
}

int main()
{
    CTemp * obj = new CTemp();
    Dowork(*obj);
    delete obj;
    return 0;
}

我得到的输出是

In cons
Do work
In dest
In dest

现在为什么构造函数被调用一次而析构函数被调用两次呢?有人可以解释一下吗?

永远
void Dowork(CTemp obj)

此处将完成本地复制,退出DoWork功能范围后将对其进行销毁,这就是为什么您会看到destructor-call的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么析构函数被调用两次?

来自分类Dev

为什么析构函数调用两次表单?

来自分类Dev

为什么代码两次调用析构函数?

来自分类Dev

为什么构造函数/析构函数被调用一次?

来自分类Dev

析构函数调用两次

来自分类Dev

为什么将异常的析构函数调用两次?

来自分类Dev

为什么自动对象的析构函数被调用两次?

来自分类Dev

为什么std :: shared_ptr两次调用我的析构函数?

来自分类Dev

为什么该程序中的析构函数被调用两次?

来自分类Dev

为什么析构函数被两次调用时我的程序不会崩溃

来自分类Dev

Singleton:析构函数如何被两次调用?

来自分类Dev

为什么构造函数被两次调用

来自分类Dev

为什么bean构造函数被调用两次?

来自分类Dev

JUNIT测试-为什么构造函数被两次调用

来自分类Dev

为什么构造函数被两次调用

来自分类Dev

为什么我的构造函数被两次调用

来自分类Dev

为什么这个构造函数被调用两次?

来自分类Dev

为什么使用一次的导入模块函数会被调用两次?

来自分类Dev

为什么析构函数被调用三次?

来自分类Dev

为什么此函数仅被调用一次

来自分类Dev

为什么我的setInterval函数仅被调用一次?

来自分类Dev

React:为什么组件的构造函数仅被调用一次?

来自分类Dev

C ++函数运行两次,但仅调用一次

来自分类Dev

关于两次调用Javascript函数的问题,一次调用一次结果

来自分类Dev

为什么析构函数比构造函数调用得更多?

来自分类Dev

Part的构造函数被两次调用

来自分类Dev

在循环内部创建的返回变量导致析构函数被调用两次

来自分类Dev

vector :: emplace_back结果两次调用析构函数

来自分类Dev

参考计数器和析构函数被调用两次

Related 相关文章

热门标签

归档