Chinaunix首页 | 论坛 | 博客
  • 博客访问: 159190
  • 博文数量: 29
  • 博客积分: 1015
  • 博客等级: 上士
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-22 12:30
个人简介

喜读书,尤好史。

文章分类

全部博文(29)

文章存档

2012年(10)

2011年(19)

分类: C/C++

2012-09-17 11:47:22

工作中遇到这样一种情况,即类的构造函数含参,且是个指针,于是检查指针为空的语句就不得不存在,
但是接下来的一系列操作都是以该参数为原始数据,当该参数为NULL但依然完成构造,这是我们根本不知道
里面发生了错误,在接下来的直接使用中,很明显会出现意料之外的状况,所以当检查到参数指针为空时
可否直接中断构造。

查了一下网络,有这样几种解决思路:
1 异常
     这是最容易想到的,c++的强大的异常机制,但是只可以在外部捕捉异常然后delete掉已构造的对象。
     这里有个很有意思的现象,从书面来看异常机制带来了各种错误甚至警告的通用解决方法,甚至封装了
     一些细节以方便使用,但是依然有很多人不愿使用,可能满屏幕的try... catch...很容易把人搞晕吧。

2 这里提到一个据说是google的一个编码标准,
     即在构造函数中只实现不会产生错误的初始化工作,而其他的则有一个专门的public函数Init来处理,此时在
     函数Init内部,对象已经构造成功,delete this,当然会起作用,但是就是想参数检查可能会出现多一次拷贝。
阅读(2773) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~