不同编译器的故事一

来源:互联网 发布:yolov2源码解析 编辑:程序博客网 时间:2024/05/22 16:35

class A

{

};


A a0;

A a1 = A(a0);


改程序在Microsoft Visual C++6.0中拷贝构造函数调用了两次,产生了临时的变量来存储暂时的结果;而在Microsoft Visual Studio 2010中调用一次,没有产生临时对象。

看反汇编代码可以发现:在VC6.0中该拷贝构造函数第一次返回临时空间的值,第二次返回变量的值

在VS2010中返回的是this指针

原创粉丝点击