1
4

3 に答える 3

1
intersection->member

ポインターを逆参照しますintersection。これは

(*intersection).member

2 回逆参照する必要はありません。

于 2012-10-19T09:49:28.060 に答える
1

コードで行うこと

*intersection->x_val = x;

と同等です

(*(intersection->x_val)) = x;

ポインターによる選択の演算子は逆参照演算子よりも優先->順位が高く、後者は代入演算子よりも優先順位が高いためです。*=

したがって、最初double x_valに class のメンバーを選択しますPoint。次に、単項逆参照演算子*を結果に適用しようとします。また、x_val はポインターではなく double であるため、逆参照演算子によって予期されるため、コンパイラーはエラーを報告します。

したがって、逆参照演算子はここでは過剰であり、次のことを行うだけで十分です

intersection->x_val = x;
于 2012-10-19T13:59:31.017 に答える
0

表示されるエラーが次の 2 行のコンパイル エラーであると仮定します。

*intersection->x_val = x;  // here i got error 
*intersection->y_val = y;  // here i got error 

問題は、ポインターを逆参照してから、逆参照演算子を使用して->いることです。

代わりに、次のいずれかを行う必要があります。

intersection->x_val = x; 
intersection->y_val = y;  // leave it as a pointer

また

*intersection.x_val = x; 
*intersection.y_val = y;  // use it as an object
于 2012-10-19T09:50:04.720 に答える