证同测试解决自我赋值的问题。
Test& Test::operator=(const Test& rhs)
{
if (this == &rhs) return *this;
delete pb;
pb = new Bitmap(*rhs.pb);
return *this;
}
异常处理(如执行new时可用空间不足)可以用copy-and-swap技术解决,同时可以解决自我赋值问题。
void swap(Test& rhs)
{
………………
}
Test& Test::operator=(const Test& rhs)
{
Test tmp(rhs);
swap(tmp);
return *this;
}
本文探讨了在C++中实现深拷贝时如何解决自我赋值的问题,并介绍了使用copy-and-swap技术来增强异常安全性的同时处理自我赋值的方法。
364

被折叠的 条评论
为什么被折叠?



