今日は、次のコードを参照して、問題外読み、読み、プロキシクラスの例を記述し、それを持っているでしょう
const int型 _cap = 10 ; Array1D * _elemArray = 新しい Array1D [_cap]。
同時に、私は自動的に生成されたコンパイラを交換するArray1Dため、このクラスのコンストラクタを書きました
Array1D(INT INX) { _elemNum = 新しいT [INX]。 }
その後エラー、何の適切なデフォルトコンストラクタを示唆していないが、明らかに、私はここにはコンストラクタを提供することで、問題は上記の新しいステートメントに対応することができない既存のコンストラクタにあり
ベクターの接触構成:ベクトル<整数> * VEC =新しいベクトル<整数> [20](25); 20は、アレイのベクトル長であり、アレイ25は、各ベクトルの長さであり、我々が知っていることができ、そこであるべきです渡された情報の3つのタイプがあります。
1.新たに割り当てられたメモリは、アプリケーション・オブジェクト・タイプのメモリは、ベクトルであります
2. 20個のそのようなオブジェクトの合計
コンストラクタ着信オブジェクトへの最初の引数として3.25
次に【_cap】図、コンストラクタへの引数として渡さない新しいArray1Dは、このクラスをArray1Dが、使用される新しいパラメータメモリ割り当て関数として_cap
つまり、上記のコードは、この新しい(Array1D、_capを、③)を参照することができます。
③コンストラクタに渡す必要があるパラメータ
これは、デフォルト値が使用されていないがありますので、実際にはデフォルト値のINXこの問題は、新しい引数なしのコンストラクタを提供する必要がない場合は、(パラメータが存在している必要があります私は、コンストラクタの上方に設けられている、明確であるが、問題を分離しますC ++コンストラクタの理解がより便利に、私はこの問題を回避するビットは(エスケープ))を意味しますが、コードの先頭にはので、ここでは、このパラメータを提供していないデフォルト値が実際のパラメータを構築する必要はありませんだと思います彼らは、コンパイラを通過した後の関数は、(このコードは実際には何の問題は、空の関数本体を必要としませんでした)コードに追加しました。