【发布时间】:2017-08-20 04:01:02
【问题描述】:
我有一个模板来创建各种对象的实例。该模板有一个类声明的静态数组,它应该创建一个在其创建期间传递的类类型数组。
在下面的示例中,myclass 是大小为 200 的类对象的静态数组 - 也可以更大。请注意,模板可以使用不同的对象进行实例化 - 因此数组的类型也会相应更改。
如何在声明本身期间初始化静态数组 - 我知道我们需要在定义自身时初始化静态数组,如果大小更大怎么办 -
template <class object>
A<object> myclass[200] = { .... new object 200 times...};
或者我需要它来执行新/删除模板中定义的重载运算符?在这种情况下,对象数组的构造和销毁将如何发生?如果某些对象在模板实例化之前引用了数组,因为它们是静态的怎么办?
【问题讨论】:
-
你的最后一段我不太清楚。
-
为什么你的类需要一个静态数组?我可能会重构该类以接受对某种全局单例对象的引用。
-
我已按要求更改了问题 - 由于预先确定的数据处理需要静态数组
-
好的,我想你想要的是一个模板静态变量:stackoverflow.com/questions/1553854/template-static-variable。
-
谢谢 - 链接中有一个答案,我们可以在基类中拥有静态成员数据 - 但是我们如何初始化一个大的静态对象数组