2014-03-12 44 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 - 甚至更好。我倾向于老派。 –