Qはどのようにこの種類の演算子= で動作するのですか?operator = bout side 1つは値で、refrenceは2番目に?
int t = v [3]; //彼女の私は価値
によって返さV [3] = 8; //彼女は私が
意志Vは、Vectorクラス(私の場合はテンプレートクラス)
template <class T>
T& Vector<T>::operator[](const int Index) const
{
if(Index > -1 && Index < this->Size)
{
return &this->Array[Index];
}
else
{
cerr <<"VECTOR_INVALID_INDEX"<<endl;
return NULL;
}
};
また、あなたが投稿したコードの問題点は何ですか? 'return NULL;'のコンパイルエラーですか?注:参照は 'NULL'と等しくはありません。 –
これを処理する典型的な方法は、operator []のconstとnon-constのオーバーロードを使うことです:const T&Vector :: operator [](const int Index)const; '' T&Vector :: operator [] (const int Index); '。あなたは価値あるものを返す必要はありません。 'int t'のような新しい変数は、参照参照値と参照参照戻り値の両方にバインドすることができます。 –
0x5453
参照はポインタではなく、その逆もあります。ヌル参照などはありません。 – molbdnilo