【发布时间】:2019-11-18 11:02:09
【问题描述】:
你能解释一下这些台词吗?
class HasPtr {
public:
HasPtr(const std::string &s = std::string())://this line
ps(new std::string(s)), i(0) { } //and this
HasPtr(const HasPtr &p):
ps(new std::string(*p.ps)), i(p.i) { }
HasPtr& operator=(const HasPtr &);
~HasPtr() { delete ps; }
private:
std::string *ps;
int i;
};
本书中的这个主题是关于行为类似于值的类。
【问题讨论】:
-
这应该至少回答了你一半的问题:stackoverflow.com/questions/1711990/…
-
我知道的正是这半个问题)
-
IMO 这是垃圾设计,它应该有
HasPtr()和HasPtr(const std::string&),原始版本略难阅读,效率略低,没有明显原因
标签: c++ class constructor default-arguments