【发布时间】:2012-10-05 05:14:32
【问题描述】:
在 Bjarne Stroustrup 的《C++ 编程语言》一书中,作者说:
有时,当您设计一个库时,有必要或者只是为了方便,发明一种具有构造函数和析构函数的类型,其唯一目的是初始化和清理。这种类型只能使用一次:分配一个静态对象,以便调用构造函数和析构函数。例如:
class Zlib_init { Zlib_init() ; //get Zlib ready for use ~Zlib_init() ; //clean up after Zlib }; Class Zlib { static Zlib_init x; / /... };不幸的是,不能保证这样的对象在第一次使用前被初始化,在由单独编译的单元组成的程序中最后一次使用后被销毁。
为什么作者将构造函数和析构函数保留为私有成员?
如果我们在由单独编译的单元组成的程序中使用它,为什么这种方法不起作用?
它不需要定义成员x 来调用构造函数Zlib_init() 和析构函数~Zlib_init() 吗?那么这个方法有什么用呢?
它在本书的第 10.4.9 节中。
【问题讨论】:
-
无法编译 - 有多种原因
-
这似乎比工作代码的实际演示更具说明性......