我想在类构造函数中打开一个文件。打开可能会失败,然后无法完成对象构造。如何处理此失败?抛出异常?如果...
我想在类构造函数中打开一个文件。打开可能会失败,然后无法完成对象构造。如何处理这种失败?抛出异常?如果可能,如何在非抛出构造函数中处理它?
顺便提一下:很多人不喜欢 is_open() 或 is_valid() 方法,认为这种方法不好。这是因为类的用户很容易忘记调用此方法,最终会得到一个部分构造的类,并且需要在许多成员函数中包含 is_open() 测试。不过,在某些情况下,这可能是一种选择。