参考答案
结论:手撕string需实现动态字符数组管理,支持构造、拷贝、赋值、析构。核心要点:1)成员char* s、size_t len、cap;2)构造从C串深拷贝并分配cap;3)拷贝构造深拷贝避免浅拷贝悬垂;4)赋值用copy-and-swap idiom防自赋值与异常;5)扩容按2倍增长;6)与std::string差异在功能简化,但需保证RAII。示例:class Str{char* s;size_t l,c;public:Str(const char*);Str(const Str&);~Str();};