2014-03-12 72 views
0

函數foo()在每次調用時都從文件返回5個字節。如果使用file_sink類,則每次調用foo()時都必須打開該文件。一種方法是在頭文件中將file_sink聲明爲private,然後在構造函數中調用file_sink上的open,並且在每次調用foo()時,每次調用read(w/o)都不必打開()。但是這似乎是不可能的,因爲file_sink構造函數需要文件路徑。如何解決這個問題。In boost file_sink class延遲公開呼叫

回答

0

已經在頭文件中file_sink指針,在構造函數初始化爲NULL,並有foo通過創建file_sink(與文件名)的第一次。

+0

或者讓它'boost :: optional '避免動態分配和關聯的內存管理 – sehe

+0

@sehe - 甚至更好。我傾向於老派。 –