之間的區別at()
和超載有什麼區別operator
[ ]
?除了at()
提供邊界檢查並拋出異常out_of_range
之外,其實現中的區別是什麼?at()和超載運算符[] C++
的operator
[ ]
實現:
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猜想,我應該把'扔'在我的條件 –