



























void StringClass::swap(StringClass& other) noexcept {
using std::swap;
swap(m_data, other.m_data);
swap(m_len, other.m_len);
}
// 拷贝赋值:传值自动调用拷贝构造,然后交换
StringClass& StringClass::operator=(StringClass other) {
swap(other); // 当前对象接管 other 的资源,other 销毁时释放旧资源
return *this;
}
using std::swap; 这个写法非常巧妙,它实现的是 C++ 中一个重要的模式:参数依赖查找(ADL) + 备用方案(Fallback)。
简单来说,它的作用是:如果有更高效的专属 swap 就用它,如果没有就用标准库的通用版本。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。