4

最終試験でこのコード行を見たのを覚えていますが、今でもそれを理解することも、その用途を理解することもできません。「ダブルポインター」と「クラスの配列へのポインター」をグーグルで検索するのに疲れましたが、まだ答えが見つかりません。

このようなものを使用する理由 (実用的な使用) を知りたい、またはこれを説明する Web サイトに誘導してください。ありがとうございました。

vendingMachine **va = new vendingMachine*[numMachines];
4

1 に答える 1

6

関連する型がクラスであることは実際には問題ではありません。基本的なタイプでもかまいません。

int **va = new int*[numInts];

セマンティクスは同じです。ポインターを指すポインターがあります。動的に割り当てられた配列はポインターで実装されるため、これはポインターの配列になります。ユースケースは次のとおりです。

int a, b;
va[0] = &a;
va[1] = &b;

ただし、前述のように、ポインターを使用して配列を実装できるため、配列の配列として扱うこともできます。したがって、別のユースケースがあります。

va[0] = new int[10];
va[1] = new int[10];
// ...
va[numInts - 1] = new int[10];

va[0][0] = 2;
va[0][1] = 8;
// ...
va[numInts - 1][9] = 3;

したがって、配列の配列があります。つまり、ints の 2 次元配列です。intからに戻すと、オブジェクトvendingMachineの 2D 配列になりvendingMachineます。

于 2012-11-03T10:39:42.747 に答える