Forlan

如果可以一直活在C++的世界里,我是很愿意的。
posts - 1, comments - 0, trackbacks - 0, articles - 3
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

VC的Bug?

Posted on 2009-06-18 23:15 forlan 阅读(94) 评论(0)  编辑 收藏 引用

Debug模式下面,居然给我跑出一个constructor两个deconstructor?

这个和NRV没有关系,Debug模式下面是不做任何优化的啊!

class CNRV
{
public:
 CNRV() {cout << "constructor" << endl;}
 virtual ~CNRV() {cout << "deconstructor" << endl;}
};

CNRV GetNRV()
{
 CNRV a;
 return a;
}

int main(array<System::String ^> ^args)
{
    CNRV t = GetNRV();
    return 0;
}

constructor
deconstructor
deconstructor
请按任意键继续. . .

啊?!你的拷贝构造函数呢?的确,加上后一切正常了。

CNRV(const CNRV& rhs) {cout << "copy constructor" << endl;}

constructor
copy constructor
deconstructor
deconstructor
请按任意键继续. . .


只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理