永发信息网

c++ 中使用std::map< key, Type > 时发现map容器的异常,会对Type在没有构造的情况下,进行多次析构。

答案:2  悬赏:60  手机版
解决时间 2021-12-24 05:52
class A
{
A () { cout << "A struct" << endl; }
~A() { cout << "A destroy" << endl; }
}
std::map< int, A > mapa;
mapa[1] = A();

输出结果:
A struct
A struct
A destroy
A destroy
A destroy
A destroy
你会发现有两次A的构造函数形同摆设,完全违反的C++类的基本规则。
最佳答案
构造函数 还有复制构造函数。 A(A&){}//调用了2次复制构造
mapa[1] = A(); //这里能编译。pair 才行吧。
全部回答
构造函数 还有复制构造函数。 a(a&amp;){}//调用了2次复制构造 mapa[1] = a(); //这里能编译。pair&lt;key,value&gt; 才行吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下列词语中,字形和加粗的字的读音全都正确的
求一篇英语作文“我最爱的人”要求1.我最爱的
壹周立波秀韩寒的发型叫什么啊
微信最新版本发出的信息两分钟之内也撤不回是
品牌推广对公司有什么好处?
如何和学生打成一片
如图所示的是一种按钮开关的构造截面图,图中
利用超声波的________与________特性制成超声
中国邮政快递从兰州往平川运费怎么计算
转走他人账户里5000块钱要判多长时间
我觉得,省道比国道好走,什么道理
削土豆时感觉有东西崩进眼睛里去了,很磨眼睛
微信中双手并排表示啥意思
By awarding the Nobel Peace Prize to Mr.O
数学里的“水平”是什么意思?
推荐资讯
樱桃在常温下怎么保存
有没有人吃过今麦郎的上品面啊?好吃吗?
请问,怎么才能合装备的成功高点?不用保底 
日语的我很坚强怎么说
请问,大家的年终奖一般都发了多少钱?我是北京
联想电脑怎么样?
唐山市哪里有柳工装载机销售?装卸工作选哪个
青岛崂山的蟠桃峰上有两个字,每个字为16平方
同心协力什么意思
以后的英语单词怎么写
钱的右半边念什么
怎么检测拆下的笔记本硬盘好坏
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?