我真的不知道如何调用这个线程。情况如下。我有一个模板类Array<T>
:
template <typename T> class Array{
private:
T* m_cData;
int m_nSize;
static int s_iDefualtSize;
public:
Array();
Array(int nSize);
}
现在,我想编写一个派生自 的专用类,包含以下Array<T>
对象class Boxes
:
class Boxes{
private:
double m_dFull;
public:
Boxes(double dFull=0): m_dFull(dFull) {}
};
我通过以下方式做到这一点:
class BoxesArray : public Array<Boxes>{
public:
BoxesArray() : Array<Boxes>::Array() {}
BoxesArray(int nValue) : Array<Boxes>::Array(nValue) {}
}
我添加了一些专门用于Boxes
. 好的,所以这是第一个混乱。调用ArrayBoxes()
似乎实例化了一个对象数组并“准备”这个对象来保存盒子,对吧?但是它是如何发生的(即,上面代码的哪一部分)在创建和对象之后ArrayBoxes
我已经用 Boxes 填充了它?而且,第二个问题,我可以看到填充 ArrayBoxes 的这些 Boxes 是使用 Boxes 的默认构造函数构造的(Boxesm_dFull
被设置为 0),但是如果我希望使用 Boxes 的参数构造函数默认实例化 ArrayBoxes 怎么办(给,比如说,盒子m_dFull = 0.5
)?希望所有的编辑我的问题现在都清楚了。