このスレッドの呼び方がよくわかりませんでした。状況は以下です。テンプレートクラスがあり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
を作成した後、既にボックスで満たされているのでしょうか? そして、2 番目の質問です。ArrayBox を満たすこれらの Box は、Box の既定のコンストラクターを使用して構築されていることがわかります (Boxm_dFull
は 0 に設定されています)。与える、たとえば、ボックスm_dFull = 0.5
)?すべての編集で、私の質問が明確になったことを願っています。