gpt4 book ai didi

c++ - 为什么析构函数被调用的次数比构造函数多?

转载 作者:可可西里 更新时间:2023-11-01 18:28:07 25 4
gpt4 key购买 nike

<分区>

在下面的代码中,析构函数被调用了两次,而构造函数只被调用了一次:

enum TFoo
{
VAL1,
VAL2
};

class CFoo
{

public:
TFoo mf;

CFoo()
{
cout<<"hi c'tor1\n";
//mf = f;
}
CFoo(TFoo f)
{
cout<<"hi c'tor2\n";
mf = f;
}
CFoo(TFoo &f)
{
cout<<"hi c'tor3\n";
mf = f;
}
~CFoo()
{
cout<<"bye\n";
}
};

int main()
{
vector<CFoo> v;
//v.assign(1, VAL1);
v.push_back(VAL1);
}

代码输出:

hi c'tor2
bye
bye

我找到了一个类似的 question ,其中提到了复制构造函数,所以我添加了它们,但结果相同。取消注释行 //v.assign(1, VAL1); 也不会改变任何东西。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com