求大神解释一下为什么本例中对象能直接初始化指针
出自c++ primer 5e:
class HasPtr{
public:
HasPtr(const srd::string &s = std::string()):
ps(new std::string(s),i(0),use(new std::size_t(1))){} //???
HasPtr(const HasPtr &p):
ps(p.ps),i(p.i),use(p.use) {++*use;}
HasPtr& operator = (const HasPtr&);
~HasPtr();
private:
std::string *ps;
int i;
std::size_t *use;
}
求教高手,在注释行中,为什么string(s)可以直接初始化类的私有成员*ps?为什么不使用引用类型来初始化指针?