は、私はクラスI []演算子をオーバーロードしたい機能、または何も
class list
{
int val;
list *next;
}
を使用しています。これは私が作ってみたものです:
int & operator [](int n)
{
list *p;
p=this;
for(int i=0; i<n; i++)
{
p=p->next;
if(p==NULL)
{
cout<<"Index out of range ";
return ?? ;
}
}
return p->val;
}
私は、戻り値の型がint型&あるので、インデックスが範囲外である場合には何も返さないための方法があるかどうかを知るために興味があります。
* "おそらく最もエレガントでモダンなcpp-way" * - もっと重要なのは間違った方法です。関数がそれを約束できない場合は、例外がスローされます。できるだけ早く、あなたが持っているすべての最新のツールを使用して、単純なルールを過度に設計された混乱に変えないでください。 – IInspectable