1

クラス変数として使用したい場合、二次元配列を宣言する方法の例を誰かに教えてもらえないかと思っていました。サイズも変数であると想定されています。

4

3 に答える 3

1

「配列」の意味によって異なります。C++ では、コンパイル時にサイズが不明な場合、組み込み配列型のメンバーを宣言することはできません。

ランタイム サイズの配列として動作するデータ構造が必要な場合は、それを自分で実装するか、ライブラリの実装を使用する必要があります。その場合、クラスの直接のプライベート メンバーは、組み込みの配列型で宣言されませんが、おそらく動的メモリに格納されている実際の配列へのある種の間接参照として宣言されます。最も単純なケースでは、クラスでポインター型のメンバーを宣言する必要があります。または、型のメンバーを使用することもできますstd::vector。これは通常、実際の配列データを動的メモリに保持し、ポインタを内部に格納します。

あなたの場合、2D配列の場合、std::vector<std::vector<T>>型のメンバーを宣言できます。

于 2013-09-11T01:10:06.897 に答える
0
class ThisClass {
private:
    int** MyArray;
    int Xlim,Ylim; //Xlim can be used during deletion. May be useful elsewhere.
public: 
    ThisClass(int x,int y) {
        Xlim = x;
        Ylim = y;
        MyArray = new int*[x];
        for(int i = 0; i < x; i++) {
            MyArray[i] = new int[y];
        }
    }
    ~ThisClass() {
         for(int i = (Xlim-1); i >= 0; i--) {
             delete [] MyArray[i];
         }
         delete [] MyArray;
    }
};


int main(int argc, char* argv[]) {

    ThisClass Mine(3,4);

    return 0;
}
于 2013-09-11T01:10:10.730 に答える