at()
とオーバーロードの違いは何ですかoperator
[ ]
? at()
が境界チェックを提供し、例外out_of_range
をスローすることを除いて、実現の違いは何ですか? operator
[ ]
のat()とオーバーロード演算子の相違点C++
実現:
const int LIMIT =100;
.......................
int& operator[ ] (int n) const
{
if(n<0 || n >= LIMIT)
{
std::cout<<"Error index!"<<std::endl;
exit(1);
}
return arr[ n ];
}
は、あなたが実現at()
のアイデアを与えることはできますか?
'operator []'は境界チェックを行いません。境界エラーがあれば、なぜあなたはアプリケーションを終了()するのですか? – PaulMcKenzie
@WhiZTiMいいえ、それは自分のためだけです。違いの私の理解を確認したい。 'at()'を完全に実現するには、例外をスローする必要がありますか? –
@PaulMcKenzieは、私の状態に「スロー」を入れてください。 –