Array obj;
とArray* obj = new Array;
の違いを理解していないと、配列インデックス演算子[]
がオーバーロードされています。私がオブジェクトへのポインタを持っているとき、私はこれらのエラーメッセージをVS 2010に取得します。配列の添え字演算子のオーバーロード
エラーC2679:バイナリ「=」:なしオペレータは
があり得る「INT」タイプの右側のオペランドをとる(または全く許容される変換は存在しない)が見つかりません「配列&アレイ::演算子=(CONST
#include <iostream>
class Array
{
int arr[10] ;
public:
int& operator[](int index)
{
return arr[index] ;
}
};
int main()
{
//Array* obj = new Array; Error
Array obj; // Correct
for(int i=0; i<10; ++i)
obj[i] = i;
getchar();
return 0;
}
『(配列、int型)「引数リストに一致しようとしたときに、』アレイ&)は、いくつかのいずれかは、演算子のオーバーロードのためのインスタンスの2種類の間の理論的根拠を説明できますか?ありがとう。
類似して:http://stackoverflow.com/questions/2808030/subscript-operator-on-pointers – coelhudo