たとえば、このクラスを作成しましAppleたが、オーバーロードされた がありoperator []ます。
次に、別のクラスで、リンゴの配列を作成しましたApple stack[10]。
次に、オブジェクトでstack[2]はなく式で使用してstack[2]いたとき、コンパイラはスタックを と見なし、とそのパラメータを としてstack[0]呼び出します。operator []2
stack[2]そのようにならずに電話をかける方法を提案してもらえますか?
たとえば、このクラスを作成しましAppleたが、オーバーロードされた がありoperator []ます。
次に、別のクラスで、リンゴの配列を作成しましたApple stack[10]。
次に、オブジェクトでstack[2]はなく式で使用してstack[2]いたとき、コンパイラはスタックを と見なし、とそのパラメータを としてstack[0]呼び出します。operator []2
stack[2]そのようにならずに電話をかける方法を提案してもらえますか?
ポインターを使用して配列要素を取得できます。
*(stack+2)[3]; // lookup element 2 and call its [] operator with 3
これまでに与えられた情報に基づいてstack[2]、オブジェクトを指しAppleます。stack[2][5]クラスでオーバーロードされたを呼び出すこともできoperator[]ますApple。
コードを提供することは役に立ちました。
xただし、クラス Apple に変数があるとします。を使用してアクセスできます(stack+2)->x。これは と同じように機能しstack[2].xます。また、オーバーロードされた演算子を使用する場合は、同様に使用できます。これにより、コンパイラが混乱することはありません。