C++爱好者探讨一个有关问题,对于Person *p=new Person()是否会调用默认构造函数?
C++爱好者探讨一个问题,对于Person *pnew Person()是否会调用默认构造函数????按照C++primer 上所说Perso
C++爱好者探讨一个问题,对于Person *p=new Person()是否会调用默认构造函数????
按照C++primer 上所说Person *p=new Person()是会调用默认构造函数的,effective C++上也同样是这么认为,以下是effective C++的一段原话:
但是按照inside C++上说,应该不会调用,以下来自inside C++:


我自己在VC.6.0下试了一下,从效果上看应该是没有调用,我不知道是不是编译器不同会有所不同。不知道大家什么观点?
[解决办法]
如果这样的话,std::cout << p->name << std::endl; 会打印出随机的值,不如你看看能不能打印出除空字符串之外的值?
ps. debugger 也是会出错的,刚好这两天看到个例子,这帖子里 (http://bbs.csdn.net/topics/390492504 ) 楼主盯着调试器看,一直认为 sizeof(pRF) == 4,最后打印出来才发现其实为 112。看看,差多远。
[解决办法]楼猪,你是没看清楚 inside C++中那个new是什么new,此new非彼new。你要分清楚:[new] [operator new][placement new]的区别 参看我的文章:http://hi.baidu.com/445920201/item/70a61f19508aedf865eabfd7