ベクトルの宣言と初期化は、クラスPixelOperator
という名前のフィールドとして行う必要があります。クラスフィールドはC++でどのように宣言されるべきですか?
私は「スタック上に」最初は「ヒープ上」であるこれらの二つの宣言方法、および第二の間で引き裂かれています(あるいは、少なくとも、それが私の解釈です)。
vector<int>* field = new vector<int>();
vector<int> field = vector<int>();
私はスタイル番号1で宣言することを選択した場合、私はクラスのデストラクタで削除呼び出す必要があります。
1は、私が選択する必要があり、なぜ?
また、クラスがヒープ上で初期化されている場合(つまり、PixelOperator* op = new PixelOperator();
)、ヒープ上で初期化されたスタックでフィールドが初期化されますか?
正しいのですが、方法2では、スタックにある(PixelOperator pix; ')、またはヒープ上にある可能性がある' PixelOperator'オブジェクトが置かれている場所にベクトルを置きます( 'PixelOperator * pix = new PixelOperator; –