赋值运算符函数异常安全
2016-03-08 11:18
239 查看
要想在赋值运算符函数中实现异常安全,我们有两种做法。一 先用new分配新内容,再用delete删除已有的内容。这样只在分配内容成功后再释放原来的内容,也就是分配内存失败时,原来的实例不会被修改。二 先创建一个临时实例,在交换临时实例和原来的实例交换。
CMyStrig &CMyString::operator=(const CMyString &str){if (this != &str){CMyString strTmp(str);char *pTmp = strTmp.data;strTmp.data = data;data = pTmp;}return *this;}
相关文章推荐
- 预约上门服务时间
- ERROR:invalid byte sequence for encoding"UTF8"
- asp.net实现调用带有输出参数的存储过程实例
- argument和 parameter有什么区别
- [MyBatis]mapperLocations属性通配符的使用
- Android 中如何获取editText文本信息
- C++项目参考解答:求Fibonacci数列
- [国嵌攻略][118][混杂设备模型]
- SPRING IN ACTION 第4版笔记-第九章Securing web applications-009-拦截请求()
- 安装该设备时去现一个错误,系统找不到指定的文件
- Android程序开发之获取汉字的首字母
- 文件IO,多线程,线程同步
- (十七)单例模式
- 查找SAP所有事物代码及用处的几个方法
- No Interfaces Available In Wireshark Mac OS X
- 应用程序和驱动的简易交互方式的实现
- ICMP协议的作用是什么?(面试问答)
- spring注解注入:<context:component-scan>详解
- unity3D -- 给游戏体添加组件
- 转基因食品的恐惧症