cxx 98/03里, HasPtr hp4 = HasPtr(1,str); 语法上讲,是调用拷贝构造,而HasPtr(1,str)是个右值,是带const的,(不过cxx 11及以上,是右值引用),HasPtr(HasPtr &),这种,自然就编译不过了; 之所以没用到,那是编译器优化,叫做copy elision,实际就是直接调用了一次构造,没有出现临时对象,印象中这个功能VC是关不掉的,g++可以通过--fno-elide-constructors选项关闭;
点赞 2

相关推荐

死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
牛客网
牛客企业服务