【发布时间】:2011-07-16 00:59:42
【问题描述】:
这是一个与 C++ 中的对象初始化有关的问题。
我有一组类(不是实例),继承自一个公共基类,我需要它们在程序启动时在容器(特别是地图)中注册有关自身的信息。
问题是我需要它是动态的。容器是在一个独立的项目中定义的,不同于类。我宁愿避免制作该库的多个硬编码版本,一个用于使用它的每个程序中的每组类。
我想过在每个子类中都有一个特殊类的静态实例,这将在其构造函数中进行注册。但是,我发现没有办法保证容器会在这些对象的构造之前被构造。
我还应该注意,在创建这些子类的任何实例之前,容器中有关子类的信息应该是可用的。
有没有办法做到这一点,或者在一般情况下模仿 C++ 中的静态构造函数?
【问题讨论】:
-
您不能将注册表对象(您的地图)设为通过 getInstance() 动态创建的单例吗?
标签: c++ static-constructor static-initialization