私が取っているプログラミング言語コースからの質問に関するガイダンスが必要です。
C++ で配列クラスを実装する方法を考え出す必要があります。これにより、その要素へのアクセスでオーバーフローが静的にチェックされます。C++11 (静的アサーション) やその他のブラックボックス ソリューションは使用しません。これは理論上の問題であり、コーディング目的で必要なものではありません。
講義スライドで強いヒントを得ました。
" インデックスが整数型の場合、配列インデックスのオーバーフローを検出することはできません。インデックスの型が配列のサイズ (配列の型の一部である必要があります) に対応している場合ではありません。"
インデックスに固定長 (配列サイズ) の文字列を使用することを考えましたが、オプションについて考える以外に、実際にはあまり得られませんでした :(.
明確化: OK、おそらく私が不明確だったために、これにはいくつかの混乱した返信がありました-したがって、もう一度強調します:
- 「静的」は「コンパイル時」を意味します。コンパイラは、ユーザーにオーバーフローを警告する必要があります (警告/エラー..)。ランタイムではありません!
- 私たちに与えられた「ヒント」を読んでください - それは使われるべきです。具体的には、プログラムは境界をチェックしない可能性があります! 具体的には、c++ の配列の at() メソッドは使用またはエミュレートされません。
これらすべてに照らして、私が彼らが望んでいるのは、配列がオーバーフローした場合に何らかの形で失敗するか、これらのインデックスの間違った値を計算するある種の変換 int->(Indices type) であると考えています。
それが今より明確になることを願っています。ありがとうございます