楼上说的让我也很疑惑啊……这怎么算是委托构造呢……
HasPtr hp4 = HasPtr(1,str);
正常情况下,这句应该是先生成一个临时对象,然后拷贝构造给hp4。这里我觉得应该是编译器优化把临时对象的生成给省略了。所以其实最后跟
HasPtr hp4(1,str);
没有本质区别。