operator void *() const

来源:互联网 发布:360网络联盟 编辑:程序博客网 时间:2024/04/30 12:11

 operator   void   *()   const

这是一种偷懒的做法,逃避了类型检查,虽然使得类型间的转换更加方便,但是不提倡使用

这里之所以能够用if语句判断ofs是否正常打开了文件,就是因为ofstream重载了operator   void   *。在if语句的括号中,ofs被强制转换成了void   *,如果文件没有正常打开,那么值为0(NULL)。

重载了*操作符,以后再使用“*”,就会在fail()有效的时候,返回0,这样重载的目的我想是为了提高“*”操作符的安全性。