最終試験でこのコード行を見たのを覚えていますが、今でもそれを理解することも、その用途を理解することもできません。「ダブルポインター」と「クラスの配列へのポインター」をグーグルで検索するのに疲れましたが、まだ答えが見つかりません。
このようなものを使用する理由 (実用的な使用) を知りたい、またはこれを説明する Web サイトに誘導してください。ありがとうございました。
vendingMachine **va = new vendingMachine*[numMachines];
関連する型がクラスであることは実際には問題ではありません。基本的なタイプでもかまいません。
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;
したがって、配列の配列があります。つまり、int
s の 2 次元配列です。int
からに戻すと、オブジェクトvendingMachine
の 2D 配列になりvendingMachine
ます。