#include<string>
class HasPtr {
public:
HasPtr(const std::string &s = std::string()) :
ps(new std::string(s)), i(0) {}
HasPtr(const HasPtr &orig) :ps(new std::string(*orig.ps)), i(orig.i) {}
HasPtr &operator=(const HasPtr &rhs) {
*ps = *rhs.ps;
i = rhs.i;
return *this;
}
private:
std::string *ps;
int i;
};
当我将其数据成员 ps 指向一个大字符串的 HasPtr 分配给另一个时,是否有可能导致内存损坏?例如:
HasPtr a;
HasPtr b(string("123456789...123456789"));
a=b;