TiXmlString& TiXmlString::assign(const char* str, size_type len) { size_type cap = capacity(); if (len > cap || cap > 3*(len + 8)) { TiXmlString tmp; tmp.init(len); //这里有new操作 memcpy(tmp.start(), str, len); swap(tmp); } else { memmove(start(), str, len); set_size(len); } return *this; } //// void swap (TiXmlString& other) { Rep* r = rep_; rep_ = other.rep_; other.rep_ = r; } / ~TiXmlString () { quit(); //里面有delete操作 }
跟了下tinyxml,感觉tinyxml的代码看着很舒服。感觉这里很有意思。