2015-11-11 124 views

回答

5

教科书的写法是非常容易引起误解。

当一个对象超出范围,它就会被销毁。当被销毁时,其连接会关闭,就好像您手动调用close()函数一样。然后,释放与该流关联的所有内存。

作者强调,相反,不持有,即如果你打电话给流的close()方法,你没有破坏它,你只是关闭它的连接。

+0

非常感谢你的帮助........现在我终于明白了! –

1

不,你的书是错的,或者你误解了它。当一个fstream对象被销毁(即超出范围)时,其文件描述符将被关闭,并且其stream_buffer将被删除。

只是猜测:也许这本书是混合指针fstream对象与fstream对象他们自我。当一个指针超出范围时,它指向的对象将不会被销毁。

相关问题