我有一个消息类别,它解析使用查找表的文本消息。我接收大量邮件和创建和销毁大量的对象,所以我想一次又一次宣布这些查找表作为静态成员,以防止在初始化具有相同值的相同的表。

这是不是正确的做法或有更合适的C ++的方式?

感谢。

有帮助吗?

解决方案

这听起来像是做了正确的方式,但我期望编译器优化这一点。你有你的基准测试应用程序,并宣告表为静态加快速度?

另外请注意,如果你有很多大的查找表,性能会提高,但表会在内存中保留所有的时间。

其他提示

如果您的邮件类共享查找信息,它可能是值得你的抽象静态查找到自己的类,使他们真正只初始化一次。

但无论如何,静态类成员是肯定要走的路。

它们可以是类变量,即在类级静态的。这样,他们都可以在子类中,如果有的话,也许比如果多一点可见的“隐藏”在个别方法静态局部变量。

是,所有确定。有时它是很好的解决方案:将创建一次函数静态的。你也可以使用单独的对象,但它有更广泛的可访问性。

要小心,如果你的多线程应用程序,如果您的查找,表中包含指向其可早于该表破坏另一个数据。

使用单件模式也将这个工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top