C++ Primer 练习13.2.1

class HasPtr {
public:
	HasPtr() = default;
	HasPtr(const string& s = string()) :
		ps(new string(s)), i(0) {}
	HasPtr(const HasPtr& p) :
		ps(new string(*p.ps)), i(p.i) {}

	HasPtr& operator=(const HasPtr& rhs){
		auto newp = new string(*rhs.ps);
		delete ps;
		ps = newp;
		i = rhs.i;
		return *this;
	}

	~HasPtr() { delete ps; }
private:
	string* ps;
	int i;
};

猜你喜欢

转载自blog.csdn.net/Dzx1025/article/details/107368144