0

たとえば、このクラスを作成しましAppleたが、オーバーロードされた がありoperator []ます。
次に、別のクラスで、リンゴの配列を作成しましたApple stack[10]
次に、オブジェクトでstack[2]はなく式で使用してstack[2]いたとき、コンパイラはスタックを と見なし、とそのパラメータを としてstack[0]呼び出します。operator []2

stack[2]そのようにならずに電話をかける方法を提案してもらえますか?

4

3 に答える 3

1

ポインターを使用して配列要素を取得できます。

*(stack+2)[3]; // lookup element 2 and call its [] operator with 3
于 2012-08-11T19:36:59.090 に答える
1

これまでに与えられた情報に基づいてstack[2]、オブジェクトを指しAppleます。stack[2][5]クラスでオーバーロードされたを呼び出すこともできoperator[]ますApple

于 2012-08-11T19:48:43.097 に答える
0

コードを提供することは役に立ちました。

xただし、クラス Apple に変数があるとします。を使用してアクセスできます(stack+2)->x。これは と同じように機能しstack[2].xます。また、オーバーロードされた演算子を使用する場合は、同様に使用できます。これにより、コンパイラが混乱することはありません。

于 2012-08-11T20:33:53.707 に答える